20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试

练习目地

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

练习要求

  1. 测试相关方法的正常,错误和边界情况
  2. TDD的方式
  3. 在实验二ComplexTest的基础上进行修改

练习内容

  • Strings类:

    • charAt
    • split
  • Arrays类:
    • sort
    • binarySearch

练习过程:

1. charAt:

  • 此方法返回位于字符串的指定索引处的字符。该字符串的索引从零开始。
  • 该方法的返回指定索引处char值。
  • 所以为了实现单元测试,我在Complex.java文件中添加如下代码:
//测试一
public static char String_charAt(String str, int i) {
return str.charAt(i);
} //取测试一结果
public static char getString_charAt(String str, int i) {
return String_charAt(str, i);
}

ComplexTest.java中添加如下代码对其进行测试:

@Test
public void testString_charAt() throws Exception {
assertEquals('d', Complex.getString_charAt(str,0));
assertEquals('g', Complex.getString_charAt(str,3));
assertEquals('n', Complex.getString_charAt(str,6));
}

这里需要用到的包为:

import java.lang.*;

测试数组为:

String str = "dangranshixuanzeyuanliangtala";

最后测试结果如下:

2.split:

  • 这个方法有两个变体,并分割这个字符串围绕给定的正则表达式匹配。
  • 返回由分割这个字符串围绕给定的正则表达式匹配计算字符串数组。
  • 为了实现单元测试,我在Complex.java文件中添加如下代码:
//测试二
public static String[] String_split(String str) {
String[] strsort = str.split(":");
return strsort;
} //取测试二结果
public static String[] getString_split(String str) {
return String_split(str);
}

ComplexTest.java中添加如下代码对其进行测试:

@Test
public void testString_split() throws Exception {
assertEquals("dang", Complex.getString_split(str2)[0]);
assertEquals("yuan", Complex.getString_split(str2)[5]);
assertEquals("liang", Complex.getString_split(str2)[6]);
}

这里需要用到的包为:

import java.lang.*;

测试数组为:

String str2 = "dang:ran:shi:xuan:ze:yuan:liang:ta:la";

最后测试结果如下:

3. sort

  • 我使用的sort为java.util.Arrays.sort(char[]), 方法字符指定数组排序按数字升序顺序。
  • 此方法不返回任何值
  • 为了实现单元测试,我在Complex.java文件中添加如下代码:
//测试三
public static String[] Arrays_sort(String[] str3) {
Arrays.sort(str3);
return str3;
} //取测试三结果
public static String[] getArrays_sort(String[] str3) {
return Arrays_sort(str3);
}

ComplexTest.java中添加如下代码对其进行测试:

@Test
public void testgetArrays_sort() throws Exception {
//ArraysTest(str3);
assertEquals("dang", Complex.getArrays_sort(str3)[0]);
assertEquals("ta", Complex.getArrays_sort(str3)[5]);
assertEquals("xuan", Complex.getArrays_sort(str3)[6]);
}

这里需要用到的包为:

import java.util.Arrays;

测试数组为:

String[] str3 = new String[]{"dang", "ran", "shi", "xuan", "ze", "yuan", "liang", "ta", "la"};

最后测试结果如下:

4. binarySearch

  • 方法搜索指定double数组,使用二进制搜索算法来指定值。该数组必须在进行此调用之前进行排序。如果不排序,则结果是不确定的。
  • 此方法返回搜索键的索引,如果它包含在数组中,否则它返回(- (插入点)- 1)。插入点是在将键插入数组的那一点:第一个元素比键大,或如果阵列中的所有元素都小于指定的键的索引大于a.length。
  • 为了实现单元测试,我在Complex.java文件中添加如下代码:
//测试四
public static double[] Arrays_binarySearch(double[] str4) {
Arrays.sort(str4);
return str4;
} //取测试四结果
public static double[] getArrays_binarySearch(double[] str4) {
return Arrays_binarySearch(str4);
}

ComplexTest.java中添加如下代码对其进行测试:

@Test
public void testgetArrays_binarySearch() throws Exception {
//ArraysTest2(str4);
assertEquals(1, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 5.4));
assertEquals(0, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 4.6));
assertEquals(4, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 49.2));
}

这里需要用到的包为:

import java.util.Arrays;

测试数组为:

double str4[] = {5.4, 4.6, 49.2, 9.2, 35.4};

最后测试结果如下:

练习总结及git链接

Complex.java

ComplexTest.java

练习收获:

通过这次课堂练习,使我进一步加深了对于TDD方式的理解和对使用assertEquals掌握,并且学会了charAtsplitsortbinarySearch这些方法的使用,收获良多。

20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试的更多相关文章

  1. 201871010123-吴丽丽《面向对象程序设计(Java)》第十二周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十二周学习总结 项目 内容 这个作业属于哪个课程  https://www.cnblogs.com/nwnu-daizh/ ...

  2. 201271050130-滕江南-《面向对象程序设计(java)》第十二周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十二周学习总结 项       目 内      容 这个作业属于哪个课程 https://www.cnblogs.co ...

  3. 201871010111-刘佳华《面向对象程序设计(java)》第十二周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十二周学习总结 实验十   集合与GUI初步 实验时间 2019-11-14 第一部分:基础知识总结 第九章知识总结 1. ...

  4. 201871010109-胡欢欢《面向对象程序设计(java)》第十二周学习总结

    201871010109-胡欢欢<面向对象程序设计(java)>第十二周学习总结   内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  5. 201871010101-陈来弟《面向对象程序设计(Java)》第十二周学习总结

    201871010101-陈来弟<面向对象程序设计(Java)>第十二周学习总结 实验十   集合与GUI初步 实验时间 2019-11-14 第一部分   理论部分 1.(1) 用户界面 ...

  6. 201871010104-陈园园 《面向对象程序设计(java)》第十二周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  7. 201871010105-曹玉中《面向对象程序设计(java)》第十二周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  8. 201871010107-公海瑜《面向对象程序设计(java)》第十二周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十二周学习总结              项目                                内容     ...

  9. 201871010133-赵永军《面向对象程序设计(java)》第十二周学习总结

    201871010133-赵永军<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

随机推荐

  1. codeforces 407C Curious Array

    codeforces 407C Curious Array UPD: 我觉得这个做法比较好理解啊 参考题解:https://www.cnblogs.com/ChopsticksAN/p/4908377 ...

  2. Java 多态(接口)

    有两种意义的多态,一是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的消息类型必须不同(方法重载).另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为(方 ...

  3. .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法

    在使用.Net 官方 Url重定向组件时,发现若原地址包含中文,如:http://localhost/首页.html 重定向为:http://localhost/index.aspx?id=首页  时 ...

  4. 编程算法 - 数字在排序数组中出现的次数 代码(C)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/36869869 数字在排序数组中出现的次数 代 ...

  5. Java并发案例05---Master-Worker模式

    Master-Worker 模式是常用的并行计算模式.它的核心思想是系统由两类进程协同工作,Master和Worker进程.Master负责接收和分配任务,Worker负责处理子任务.当各个Worke ...

  6. 26、springboot与消息

    概述: 1.大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力消息服务中两个重要概念:           2.消息代理(message broker)和目的地(destination) ...

  7. php数组键值操作和数组统计函数-函数

    1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...

  8. concatenate函数

    numpy.concatenate((a1, a2, ...), axis=0) Join a sequence of arrays along an existing axis.(按轴axis连接a ...

  9. Dubbo实践(十七)telnet

    telnet的介绍可以参看<java网络编程3>中有一段介绍telnet,我们可以理解为,telnet命令是通过socket协议与服务器端通信.Dubbo提供了telnet命令去查看服务功 ...

  10. PAT——1022. D进制的A+B

    输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D ...