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’字符。

测试代码如下所示:

  1. String s = "Pretty boys and girls.";
  2. @Test
  3. public void testCharAt() {
  4. assertEquals('t',s.charAt(3)); //1
  5. assertEquals(' ',s.charAt(6)); //2
  6. assertEquals('g',s.charAt(16)); //3
  7. assertEquals('.',s.charAt(21)); //4
  8. //assertEquals('e',s.charAt(3)); //5
  9. //assertEquals(' ',s.charAt(22)); //6
  10. }

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



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



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

(2)split()方法

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

测试代码如下所示:

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

2.Arrays类

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

(1)sort()方法

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

测试代码如下所示:

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

将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. DLL 函数中使用结构体指针作函数参数(C# 调用 C++ 的 DLL)

    存在的问题: 问题1:C++ 与 C# 同样定义的结构体在内存布局上有时并不一致: 问题2:C# 中引入了垃圾自动回收机制,其垃圾回收器可能会重新定位指针所指向的结构体变量. 解决方案: 问题1方案: ...

  2. 缓存:前端页面缓存、服务器缓存(依赖SQL)MVC3

    缓存依赖数据库 第一步 1通过vs里面带的命令提示窗口. 2或者.NET Framework 版本 4(64 位系统)条件,%windir%\Microsoft.NET\Framework64\v4. ...

  3. 讨论下茴香逗的茴字有几种写法,javascript字符串数组查找“indexOf"的替代方式。

  4. letecode242有效字母的异位词

    bool isAnagram(char* s, char* t) { ] = {}; ] = {}; int lenS = strlen(s); int lenT = strlen(t); ;i< ...

  5. Java & C# BCD编码与十进制转换

    using System;using System.Collections.Generic;using System.Text; namespace Base{ public class BCDHel ...

  6. C# 读取TXT文本数据 添加到数据库

    protected void Button1_Click(object sender, EventArgs e) { //使用FileStream读取文件 FileStream fileStream ...

  7. 在同时满足if 和 else 条件的情况下,输出所需的内容。

    请问划线处填什么内容,可以输出 "Hello World!"?if(__________){    printf("Hello ");}else{    pri ...

  8. Unity3d项目入门之Rolling Ball

    下面通过分析制作一个简单的收集特定物体的滚球游戏来入门unity,包括操作面板和C#脚本的编写导入,创建Game Object和给Object添加组件等等. 一 初始设置 在Assert下创建主场景M ...

  9. IDEA中常用的maven指令

    Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令:  1. 创建Maven的普 ...

  10. MAVEN工程相关配置

    MAVEN工程插件安装: Name: MavenArchiver Location: https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse- ...