Arrays和String单元测试

具体描述:

在IDEA中以TDD的方式对String类和Arrays类进行学习

  • 测试相关方法的正常,错误和边界情况

  • String类

    • charAt
    • split
  • Arrays类

    • sort
    • binarySearch

提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。

内容:

1.String类

String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能有类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。

(1)charAt(int index)方法

该方法返回位于字符串的指定索引处的字符,字符串的索引从零开始,其中index是指字符的索引,即下标。例如字符串“Pretty boys and girls.”中,若是调用方法charAt(3),则返回的是‘t’字符。

测试代码如下所示:

String s = "Pretty boys and girls.";

@Test
public void testCharAt() {
assertEquals('t',s.charAt(3)); //1
assertEquals(' ',s.charAt(6)); //2
assertEquals('g',s.charAt(16)); //3
assertEquals('.',s.charAt(21)); //4
//assertEquals('e',s.charAt(3)); //5
//assertEquals(' ',s.charAt(22)); //6
}

将5和6所在的行注释(或删除)后,其中第4行是边界,运行结果为:



若是将5所在行添加到项目中,会发生错误,因为测试值和给定的值不一致,具体的运行结果为:



若是将6所在行添加到项目中,会发生错误,因为数组越界,超过给定字符串的长度,具体的运行结果为:

(2)split()方法

该方法是用于分隔字符串,得到一个字符数组。例如字符串“Pretty boys and girls.”按照空格分隔,即调用split(" ")方法,可得到对应的字符串数组"Pretty","boys","and"和"girls."。

测试代码如下所示:

String s = "Pretty boys and girls.";
@Test
public void testSplit() {
assertEquals("Pretty",s.split(" ")[0]); //1
assertEquals("boys",s.split(" ")[1]); //2
assertEquals("and",s.split(" ")[2]); //3
assertEquals("girls.",s.split(" ")[3]); //4
//assertEquals(".",s.split(" ")[3]); //5
}

2.Arrays类

Arrays类是一个实现对数组操作的工具类,包括了各种各样的静态方法,可以实现数组的排序和查找、数组的比较和对数组增加元素,数组的复制和将数组转换成字符串等功能。

(1)sort()方法

该方法用于数组排序,默认是升序排列,但是可以通过修改compareTo中的返回值来变为降序排列。

测试代码如下所示:

int[] i = {2,5,9,1};

@Test
public void testSort() {
Arrays.sort(i);
assertEquals(1,i[0]); //1
assertEquals(2,i[1]); //2
assertEquals(5,i[2]); //3
assertEquals(9,i[3]); //4
//assertEquals(5,i[3]); //5
}

将5所在的行注释(或删除)后,运行结果为:



若是将5所在行添加到项目中,会发生错误,因为测试值和给定的值不一致,具体的运行结果为:

20175316 盛茂淞 Arrays和String单元测试的更多相关文章

  1. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  2. 20175316盛茂淞 2018-2019-2 《Java程序设计》第9周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第9周学习总结 教材学习内容总结 下载安装MySQL数据库管理系统. 学习<Java程序设计>第十一章MyS ...

  3. 20175316盛茂淞 2018-2019-2 《Java程序设计》第8周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 泛型 -- 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据 ...

  4. 20175316盛茂淞 2018-2019-2 《Java程序设计》第7周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 常用实用类 一.String类 String类在java.lang包中,jav ...

  5. 20175316盛茂淞 2018-2019-2 《Java程序设计》第6周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 内部类与异常类 1.使用 try.catch Java中所有信息都会被打包为对 ...

  6. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  7. 20175316盛茂淞 2018-2019-2 《Java程序设计》第5周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 第六章 接口与实现. 何谓接口 接口:书上没有明确地给出接口的定义,我理解的接口就是一 ...

  8. 20175316盛茂淞 2018-2019-2《Java程序设计》第4周学习总结

    20175316盛茂淞 2018-2019-2<Java程序设计>第4周学习总结 教材学习内容总结 第五章 子类与继承 一.继承 1.继承定义:避免多个类间重复定义共同行为 2.子类与父类 ...

  9. 20175316盛茂淞 2018-2019-2 《Java程序设计》第3周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第3周学习总结 教材学习内容总结 1.1.编程语言的几个发展阶段: 面向机器语言 面向过程语言 面向对象语言 2.1.类 ...

随机推荐

  1. es集群搭建

    1.复制5份es,版本要相同,且各个节点上jdk版本也要相同,否则会报数据同步格式不一致  invalid internal transport message format. 2.配置elastic ...

  2. redis远程连接不上解决办法

    结构:PC-A 运行redis client,PC-B运行redis server PC-B方面 在server中,修改配置文件redis.windows-service.conf中的: 1.注释 # ...

  3. 兼容的获取样式的函数getStyle()

    想要得到某个元素的某个样式属性,可以用: <div id="div01" style="color:red">123</div> var ...

  4. 初始IP协议

    一.引言 发送一段TCP数据大致需要经过:用户封装 –> TCP封装 –> IP封装 –>帧封装 Note:用户封装没啥好说的,都是客户自己决定的,在一些简单的应用情况下,这个步骤可 ...

  5. H5页面移动端IOS键盘收起焦点错位

    出现场景:IOS端,在弹出层点击input时调起键盘页面会被顶上去document.body.scrollOffset大于0,收起键盘时scrollOffset不变,造成焦点错位. 注:安卓手机点击时 ...

  6. keil的自动补全功能

    设置完之后,在.c文件上试一下,发现还是不能自动补全. 后来去各种贴吧里找到了答案,是我的.c文件还没有保存到工程文件中去,所以不能实现这个功能.

  7. Homework:奇偶性

    // 程序功能: // 要求用户从键盘输入一个整数,判断其是奇数还是偶数 #include <stdio.h> int main() { int x; printf("输入一个整 ...

  8. Java框架spring 学习笔记(六):属性注入

    属性注入:创建对象的时候,向类里面的属性设置值. Java属性注入有三种方法: 使用set方法注入 有参数构造注入 使用接口注入 Spring框架里面的属性注入方式 有参数构造属性注入 set方法属性 ...

  9. Docker registry垃圾回收

    Docker registry垃圾回收 通过: docker run -p 5000:5000 -v /netdata/xxxx/registry:/var/lib/registry registry ...

  10. jsp九个内置对象、四个域对象及Servlet的三大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...