《Java 程序设计》课堂实践项目-Arrays和String单元测试 课后学习总结

目录

  • 改变
  • Arrays和String单元测试实验要求
  • 课堂实践成果
  • 课后思考

改变

修改了博客整体布局,改变了之前贴个截图粘个代码就糊弄完的观念,这次布局和内容都有修改。

    补充了部分没有讲过的测试类的样例,图片等都是再次运行之后截得细致的图片,电脑上也有原图。

Arrays和String单元测试实践要求

  1. 问:在IDEA中以TDD的方式对String类和Arrays类进行学习
    - 测试相关方法的正常,错误和边界情况
    - String
       - charAt
       - split
      
    - Arrays
      - sort
      - binarySearch

课堂实践成果

代码如下:

  1. 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));
    }
  1.  

实验截图如下:

需要注意以下两点我做实验时遇到的问题:

  • 测试sort时输入的是字符串数组还是字符数组这里出现了问题,之后查API发现其实有很多类型。
  • 测试binarySearch是输入的是double类型的,因为上来就用了字符串数组,导致出错

课后思考

关于测试

1.正常情况我是通过随机选取三个测试用例进行测试的

2.错误情况是直接输入错误答案看是否通过测试

3.边界情况是测试数组第一个和最后一个,截图为正常情况的测试。

关于过程

1.charAT:

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

在complex.test中添加如下代码对其进行测试:

  1. @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));
    }

测试数组为:

  1. String str = "dangranshixuanzeyuanliangtala";

最后测试结果如下:

2.split

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

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

  1. @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]);
    }

测试数组为:

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

最后测试结果如下:

3.sort

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

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

  1. @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]);
    }

测试数组为:

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

最后测试结果如下:

4.benarysearch

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

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

  1. @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));
    }

测试数组为:

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

最后测试结果如下:

学习反思及总结

重新做了一遍实验加深了对TDD的理解,同时也提高了对测试代码应用方面的能力,温故而知新。关于代码在上面就有总结过就不重复了。·

《Java 程序设计》课堂实践项目-Arrays和String单元测试的更多相关文章

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

    20155322 2016-2017-2 <Java面向对象程序设计>第十二周课堂练习之Arrays和String单元测试 练习目地 在IDEA中以TDD的方式对String类和Array ...

  2. 20155228 2017-5-10 课堂测试:Arrays和String单元测试

    20155228 2017-5-10 课堂测试:Arrays和String单元测试 题目和要求 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 ...

  3. 【课堂实验】Arrays和String单元测试

    实验内容 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt split Arrays类 sort binarySea ...

  4. 《Java 程序设计》课堂实践项目汇总链接

    1.<Java 程序设计>课堂实践项目-命令行参数 2.<Java 程序设计>课堂实践项目-mini dc 3.<Java 程序设计>课堂实践项目-Arrays和S ...

  5. 《Java 程序设计》课堂实践项目 课后学习总结

    <Java 程序设计>课堂实践项目 课后学习总结 String类的使用(sort) 目录 Linux命令(sort) 课堂实践 课后思考 学习老师的代码之后的思考:int与Integer ...

  6. 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目

    20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...

  7. 20155321 2016-2017-2《Java程序设计》课堂实践项目

    20155321 2016-2017-2<Java程序设计>课堂实践项目 关于String类 split方法 charAt方法 项目题目: 模拟实现Linux下Sort -t : -k 2 ...

  8. 20162318 2016-2017-2《Java程序设计》课堂实践项目

    20162318 2016-2017-2<Java程序设计>课堂实践项目 String类的使用 在String类中有一种split的方法.它可以把字符串分割为好几个小的字符串. 实践内容: ...

  9. 《Java 程序设计》课堂实践项目-类定义

    <Java 程序设计>课堂实践项目类定义 课后学习总结 目录 改变 类定义实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有修改. ...

随机推荐

  1. Mybatis显示SQL语句

    众所周知,hibernate可以通过配置show_sql在控制台显示sql语句,Mybatis可不可以呢?当然是可以的,将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运 ...

  2. JQuery-学习。

    jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作.由约翰·雷西格(John Resig)在2006年1月的BarCamp NYC上发布第一个版本.目前是 ...

  3. Mysql5.7 的错误日志中最常见的note级别日志解释

          在使用mysql5.7的时候,发现了不少在mysql5.6上不曾见过的日志,级别为note, 最常见的note日志以下三种,下面我们来逐个解释. 第一种,Aborted connectio ...

  4. 转:eclipse的快捷键

    22 21 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到 ...

  5. EXC_BAD_ACCESS错误

    EXC_BAD_ACCESS错误 一直都是使用ARC开发,咋就莫名其妙的出现这种EXC_BAD_ACCESS错误. 一直都是是怀疑在block中有着特殊处理,导致了使用时出现了这种错误,查找了好久.. ...

  6. Linux echo命令详解

    echo :输出文字到控制台 -n: 不换行输出 -e:解析转移字符   (-b: 退格  -n 换行 -t 空格) 常用的命令展示 echo {1..4} ==> seq -s " ...

  7. SpringBoot Mybatis 执行自定义SQL

    1.XML中执行自定义SQL. https://blog.csdn.net/u012427355/article/details/80654806 2.注解执行自定义SQL @Select(" ...

  8. win10 虚拟机 hyper-v 安装 centos 7

    一.win 10 企业版 自带虚拟机 hyper-v 1.控制面板-->程序和功能-->启用或关闭Windows功能 勾上 hyper-v 确定就ok了 2.安装成功后会发现在 左下角“开 ...

  9. TreeSet集合的add()方法源码解析(01.Integer自然排序)

    >TreeSet集合使用实例 >TreeSet集合的红黑树 存储与取出(图) >TreeSet的add()方法源码     TreeSet集合使用实例 package cn.itca ...

  10. GIT非常见命令使用笔记

    1:修改已经提交N次代码的user.name和user.email 解决我在多电脑间,使用不同账户,git config 的global,system,local配置忽略改动,而添加了多台电脑ssh ...