20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习
实践题目
在IDEA中以TDD的方式对String类和Arrays类进行学习
测试相关方法的正常,错误和边界情况
String类
- charAt
- split
Arrays类
- sort
- binarySearch
课上未能及时提交的原因
- 对单元测试掌握不熟,在老师演示具体方法之前,自己的思路是建立一个空的MyArrays类,然后建立它的测试类MyArraysTest,在测试类中定义变量,进行sort binarySearch操作后,再建立两个Tester,在其中利用断言测试结果与预期值是否相同。
- 经过老师的提点,了解到可以直接在实验二已有测试代码中直接添加两个Tester,不需要新建测试类。但在操作过程中,又出现了新的疑问,到底把新建测试实例、排序等准备工作放在Tester内部还是外部呢?
- 经过老师的演示,我在两个测试用例内部建立了测试实例,并调用sort函数对实例进行排序。
- 最终完成了任务,但是由于自己平时是在虚拟机里编写代码,idea中目录结构与虚拟机中的不同,时间紧迫没有在idea中clone自己的项目,也没有把代码粘贴到虚拟机里。所以最终未能将代码及时推到码云上。
代码
//前面的代码就是实验二中StringBufferTest的代码,与本实践无关,所以省略
@Test
public void StringTester() {
String string="aa:30:3:5";
String[] strings=string.split(":");
assertEquals(':',string.charAt(2));
assertEquals("30",strings[1]);
}
@Test
public void ArraysTester() {
int[] arr={1,2,5,4};
Arrays.sort(arr);
assertEquals(5,arr[3]);
assertEquals(1,binarySearch(arr,2));
}
码云链接
从Windows的IDEA里复制到虚拟机中的代码格式上看着有点别扭,所以还是把完整代码写在这里方便老师检查。
import junit.framework.TestCase;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static java.util.Arrays.binarySearch;
import static org.junit.Assert.*;
/**
* Created by dell1 on 2017/4/20.
*/
public class StringBufferDemoTest extends TestCase {
StringBuffer string1 = new StringBuffer("Beautiful");
StringBuffer string2 = new StringBuffer("Beautiful Girls");
StringBuffer string3 = new StringBuffer("Beautiful Girls and Boys");
@Test
public void testCharAt(){
assertEquals('a',string1.charAt(2));
assertEquals(' ',string2.charAt(9));
assertEquals('a',string3.charAt(16));
}
@Test
public void testCapacity(){
assertEquals(25,string1.capacity());
assertEquals(31,string2.capacity());
assertEquals(40,string3.capacity());
}
@Test
public void testindexOf() {
assertEquals(1, string3.indexOf("ea"));
}
@Test
public void testlength() {
assertEquals(9, string1.length());
}
@Test
public void StringTester() {
String string="aa:30:3:5";
String[] strings=string.split(":");
assertEquals(':',string.charAt(2));
assertEquals("30",strings[1]);
}
@Test
public void ArraysTester() {
int[] arr={1,2,5,4};
Arrays.sort(arr);
assertEquals(5,arr[3]);
assertEquals(1,binarySearch(arr,2));
}
}
截图

收获
通过这次实践以及对本篇博客的撰写,我再一次学习了老师Intellj IDEA 简易教程中的单元测试部分,对于一些稍有遗忘的知识又加深了印象,最重要的是能够更为灵活的使用单元测试。
20155312张竞予 20170510实践一:在IDEA中以TDD的方式对String类和Arrays类进行学习的更多相关文章
- 20155312 张竞予 Exp3 免杀原理与实践
Exp3 免杀原理与实践 目录 基础问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 实验总结与体会 实践过程记录 正确使用msf编码器,msfveno ...
- 20155312 张竞予 Exp2 后门原理与实践
Exp2 后门原理与实践 目录 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? (2)例举你知道的后门如何启动起来(win及linux)的方式? (3)Meterpreter有哪 ...
- 20155312 张竞予 Exp9 Web安全基础
Exp9 Web安全基础 目录 基础问题回答 (1)SQL注入攻击原理,如何防御 (2)XSS攻击的原理,如何防御 (3)CSRF攻击原理,如何防御 实践过程记录 WebGoat准备工作 1.XSS攻 ...
- 20155312 张竞予 Exp 8 Web基础
Exp 8 Web基础 目录 基础问题回答 (1)什么是表单 (2)浏览器可以解析运行什么语言. (3)WebServer支持哪些动态语言 实践过程记录 1.Web前端:HTML 2.Web前端jav ...
- 做中学learning by doing——个人感想20155312张竞予
做中学learning by doing--个人感想 概要 阅读五篇博客后的感触 我的个人技能 个人经验的类比与总结 c语言学习情况 java学习目标及规划 公文写作能力 我的感触 仔细阅读了老师公众 ...
- 20155312 张竞予 Exp4 恶意代码分析
Exp4 恶意代码分析 目录 基础问题回答 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (2)如果 ...
- 20155312 张竞予 Exp7 网络欺诈防范
Exp7 网络欺诈防范 目录 基础问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 (2)在日常生活工作中如何防范以上两攻击方法 实验总结与体会 实践过程记录 (1)简单应用SET工具建 ...
- 20155312 张竞予 Exp6 信息搜集与漏洞扫描
Exp6 信息搜集与漏洞扫描 目录 基础问题回答 (1)哪些组织负责DNS,IP的管理. (2)什么是3R信息. (3)评价下扫描结果的准确性. 实验总结与体会 实践过程记录 (1)各种搜索技巧的应用 ...
- 20155312张竞予 Exp1 PC平台逆向破解(5)M
Exp1 PC平台逆向破解(5)M 目录 实验内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发get ...
随机推荐
- c++面向行的输入getline()和get()
来源:c++ primer plus 在c++里当我们输入一个字符串时习惯用cin,但是cin只能读取一段不含空格的字符串,如果我们需要读取一段包含空格的字符串时,就需要用到getline()或get ...
- 排列组合或容斥原理 SPOJ - AMR11H
题目链接: https://vjudge.net/contest/237052#problem/H 这里给你一串数字,让你计算同时拥有这串数字最大值和最小值的子集(连续)和子序列(可以不连续)的数量, ...
- TOJ4757: 12345(数学)
传送门 时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte 描述 为了说明水题也不是那么好AC的,FD出了一个由数字1~5组成的题目,题意如下: 给定一个正 ...
- Disruptor底层实现讲解与RingBuffer数据结构讲解
Disruptor术语 RingBuffer:被看作Disruptor最主要的组件,然而从2.0开始RingBuffer仅仅负责存储和更新在Disruptor中流通的数据.对一些特殊的使用场景能够被用 ...
- Java-分治算法
一.分治算法的原理 分治算法就是将一个规模为N的问题分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以得出原问题的解 二.分治算法的伪代码实现 合并算法Merge ...
- 理解HTTP之keep-alive(转)
理解HTTP之keep-alive 在前面一篇文章中讲了TCP的keepalive,这篇文章再讲讲HTTP层面keep-alive.两种keepalive在拼写上面就是不一样的,只是发音一样,于是乎大 ...
- 使用BulkCopy报错 从 bcp 客户端收到一个对 colid 19 无效的列长度
====System.Data.SqlClient.SqlException: 从 bcp 客户端收到一个对 colid 19 无效的列长度. 从0开始数,数据库上表的第19列
- 微信小程序模板中使用循环
原创文章 本篇介绍如何在模板里使用循环. 方法一: template.wxml,该文件内容为: <template name="msgItem1"> <block ...
- ios简单国际化
1.在PROJECT中Info得Localizations中添加语言 2.新建Localizable.strings(一定是这个文件名),在右侧属性栏的Localization中勾选出你需要的语言 3 ...
- MVC之CodeFirst
1.建立MVC项目>NuGet安装EF 2.建立模型: public class Blog { [Key] [DatabaseGenerated(DatabaseGeneratedOption. ...