20175316 盛茂淞 Arrays和String单元测试

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所在行添加到项目中,会发生错误,因为测试值和给定的值不一致,具体的运行结果为:

原文地址:https://www.cnblogs.com/sms369/p/10713790.html

时间: 2024-10-05 16:28:39

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

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

20175316盛茂淞 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 第六章 接口与实现. 何谓接口 接口:书上没有明确地给出接口的定义,我理解的接口就是一段程序中可能有很多类会有共同的行为,但这些类本身并不具有任何关系,如果使用继承的话程序架构会不合理,所以使用统一的接口表示这些类具有共同的行为 interface 可定义行为,例如: public interface Swimmer{ public abstract void swim(); } implem

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

20175316盛茂淞 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 泛型 -- 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构 -- 泛型类声明 可以使用class 名称<泛型列表>声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据 -- 使用泛型类声明对象 泛型类声明和创建对象时,类名后多了一对"<>"

20175316盛茂淞与20175329许钰玮结队合作

20175316盛茂淞与20175329许钰玮结队合作 一.团队合作意义 团队合作指的是一群有能力,有信念的人在特定的团队中,为了一个共同的目标相互支持合作奋斗的过程.它可以调动团队成员的所有资源和才智,并且会自动地驱除所有不和谐和不公正现象,同时会给予那些诚心.大公无私的奉献者适当的回[1]报.如果团队合作是出于自觉自愿时,它必将会产生一股强大而且持久的力量. 二.团队合作的表现力 (1)成员密切合作,配合默契,共同决策和与他人协商. (2)决策之前听取相关意见,把手头的任务和别人的意见联系起

2019-2020-2 20175316盛茂淞《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175316盛茂淞<网络对抗技术>Exp3 免杀原理与实践 一.实验目标 熟悉后门的概念 使用netcat实现win,linux之间的后门连接 掌握meterpreter的应用 了解MSF POST 模块的应用 学会win,linux的后门启动方式 二.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控,开销较大) 基于行为的恶意软件检测(如API监控) 2.免杀是做什么? 通过伪装,加解密,对she

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

20175316 <Java程序设计> 第11周学习总结 教材内容学习总结 第十三章 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用程序称作客户端程序 一个URL对象通常包含最基本的三部分信息: 协议 地址 资源 构造方法 public URL(String spec) throws MalformedURLException public URL(String protocol, String host,String f

20175316盛茂淞-Java第2周学习总结

20175316 2018-2019-2 <Java程序设计>第2周学习总结 教材学习内容总结 1.整数:可细分为为short整数(占2字节),int整数(占4字节),long整数(占8字节). 2.字节:byte类型,需要逐字节处理数据.可表示-128~127的整数 3.浮点数:要用来储存小数,分为float浮点数(占4字节)与double 4布尔:boolean类型可表示true和false,代表逻辑的"真"与"假". 5.字符:char类型用来储存

20175316盛茂淞 迭代和JDB

迭代和JDB 题目 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正常如c(3,2).异常如c(2, 3).边界情况如c(m,m)) 4 提交正常情况下用JDB调试程序c(X,2)的截图,X为学号最后一位+3,至少四张截图 5 把代码推送到码云 代码 public class zuheshu { public static void main(String[] args)

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

教材知识总结 第12章 Java多线程机制 进程与线程 进程是程序的一次动态执行进程,它对应了从代码加载.执行至执行完毕的一个完整过程 线程不是进程,一个进程在其执行过程中,会产生多个线程,线程间可以共享进程中的代码和数据. 没有进程就没有线程 多线程 多线程是指一个应用程序中同时存在几个执行体,按几条不同的执行线索共同工作的情况. 计算机只能执行多个线程中的一个,java虚拟机快速的把控制从一个线程切换至另一个线程. JVM一直要等到java应用程序中的所有线程都结束,才结束java应用程序

学号20175313 《Arrays和String单元测试》第八周

目录 Arrays和String单元测试 一.String类相关方法的单元测试 二.Arrays类相关方法的单元测试 三.测试过程中遇到的问题及其解决方法 四.码云链接 五.参考资料 Arrays和String单元测试 一.String类相关方法的单元测试 测试结果截图: 1. charAt方法测试 正常情况 边界情况 异常情况 测试代码: import junit.framework.TestCase; import org.junit.Test; public class testStrin