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

    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这些方法的使用,收获良多。

  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/blackay03/p/6839127.html
Copyright © 2011-2022 走看看