《Java 程序设计》课堂实践项目-Arrays和String单元测试
2017-05-07 01:36
477 查看
《Java 程序设计》课堂实践项目-Arrays和String单元测试 课后学习总结
目录
改变Arrays和String单元测试实验要求
课堂实践成果
课后思考
改变
修改了博客整体布局,改变了之前贴个截图粘个代码就糊弄完的观念,这次布局和内容都有修改。补充了部分没有讲过的测试类的样例,图片等都是再次运行之后截得细致的图片,电脑上也有原图。
Arrays和String单元测试实践要求
问:在IDEA中以TDD的方式对String类和Arrays类进行学习 - 测试相关方法的正常,错误和边界情况 - String类 - charAt - split - Arrays类 - sort - binarySearch
课堂实践成果
代码如下:import static org.junit.Assert.*; /** * Created by Lenovo on 2017-06-11. */ /** * Created by 20145207 on 2017/5/4. */ import junit.framework.TestCase; import org.junit.Test; import java.lang.*; import java.util.Arrays; public class ComplexTest extends TestCase { Complex c1 = new Complex(0, 3); Complex c2 = new Complex(-1, -1); Complex c3 = new Complex(2, 1); String str = "dangranshixuanzeyuanliangtala"; String str2 = "dang:ran:shi:xuan:ze:yuan:liang:ta:la";//String[] str2sort = str2.split(":"); String[] str3 = new String[]{"dang", "ran", "shi", "xuan", "ze", "yuan", "liang", "ta", "la"}; @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)); } @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]); } @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]); } @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)); }
实验截图如下:
需要注意以下两点我做实验时遇到的问题:
测试sort时输入的是字符串数组还是字符数组这里出现了问题,之后查API发现其实有很多类型。
测试binarySearch是输入的是double类型的,因为上来就用了字符串数组,导致出错
课后思考
关于测试1.正常情况我是通过随机选取三个测试用例进行测试的
2.错误情况是直接输入错误答案看是否通过测试
3.边界情况是测试数组第一个和最后一个,截图为正常情况的测试。
关于过程
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); }
在complex.test中添加如下代码对其进行测试:
@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)); }
测试数组为:
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); }
在complex.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]); }
测试数组为:
String str2 = "dang:ran:shi:xuan:ze:yuan:liang:ta:la";
最后测试结果如下:
3.sort
我使用sort方法字符指定数组排序按数字升序顺序。
此方法不返回任何值
为了实现单元测试,我在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); }
在complex.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]); }
测试数组为:
String[] str3 = new String[]{"dang", "ran", "shi", "xuan", "ze", "yuan", "liang", "ta", "la"};
最后测试结果如下:
4.benarysearch
方法搜索指定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)); }
测试数组为:
double str4[] = {5.4, 4.6, 49.2, 9.2, 35.4};
最后测试结果如下:
学习反思及总结
重新做了一遍实验加深了对TDD的理解,同时也提高了对测试代码应用方面的能力,温故而知新。关于代码在上面就有总结过就不重复了。·标签: Java学习笔记 课堂实践项目总结
相关文章推荐
- 2016-2017-2 《Java 程序设计》课堂实践项目
- 《Java 程序设计》课堂实践项目-数据库
- 《Java 程序设计》课堂实践项目-mini dc
- 《Java 程序设计》课堂实践项目-简易计算器
- 《Java 程序设计》课堂实践项目-类定义
- 《Java 程序设计》课堂实践项目-命令行参数
- 《Java 程序设计》课堂实践项目汇总链接
- 【课堂实验】Arrays和String单元测试
- 《Java 程序设计》课堂实践二
- 20155228 2017-5-10 课堂测试:Arrays和String单元测试
- 20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试
- 《Java 程序设计》课堂实践三
- 《Java 程序设计》课堂实践一
- Java程序设计 第16周 课堂实践 —— 数据库4
- Java程序设计 第16周 课堂实践
- C++程序设计-第1周温故知新上机实践项目
- C++程序设计-第15周数组上机实践项目
- C++程序设计-第12周函数序设计上机实践项目
- C++程序设计-第17周指针上机实践项目
- C++程序设计-第16周字符数组及指针上机实践项目