zoukankan      html  css  js  c++  java
  • 20175225 《Arrays和String单元测试》

    ---恢复内容开始---

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

    单元测试

    1.String类

    (1).charAt
    该方法返回位于字符串的指定索引处的字符,字符串的索引从零开始,其中index是指字符的索引,即下标。
    测试代码:

    public class StringTest extends TestCase {
        String str1 = new String("Hello java");
        String str2 = new String("你好,沙雕");
        String s = new String("http://jwc.besti.edu.cn/ ni zhen sha diao");
    
        @Test
        public void testcharAt() throws Exception {
            assertEquals('l', str1.charAt(3));    //正常情况
            assertEquals(' ', str1.charAt(5));    //正常情况
            assertEquals('好', str2.charAt(1));   //正常情况
            assertEquals(':', s.charAt(4));       //正常情况
            assertEquals('a', str1.charAt(9));    //边界情况
            assertEquals('你', str2.charAt(0));   //边界情况
            //assertEquals(' ',str1.charAt(-1));           //异常情况
            //assertEquals('哇',str2.charAt(5));           //异常情况
        }
    
    

    (2).split
    该方法是用于分隔字符串,得到一个字符数组。
    测试代码:

    public class StringTest extends TestCase {
        String str1 = new String("Hello java");
        String str2 = new String("你好,沙雕");
        String s = new String("http://jwc.besti.edu.cn/ ni zhen sha diao");
    public void testsplit() throws Exception {
            assertEquals("http://jwc",s.split("[.]")[0]);    //正常情况
            assertEquals("http://jwc.besti.edu.cn/",s.split(" ")[0]);    //正常情况
            assertEquals("jwc.besti.edu.cn",s.split("/")[2]);    //正常情况
            assertEquals("",s.split("\p{Lower}")[0]);      //边界情况
            assertEquals("diao",s.split("\s")[4]);          //边界情况
            assertEquals("jwc.besti.edu.cn",s.split("/")[1]);              //异常情况
            assertEquals(" ",s.split(" ")[-1]);                            //异常情况
        }
    }
    

    2.Arrays类

    (1).sort
    该方法用于数组排序,默认是升序排列,但是可以通过修改compareTo中的返回值来变为降序排列。
    测试代码

    public class ArraysTest extends TestCase{
        int a[] = {2,5,6,4,9,3};
        char b[] = {'d','y','a','t','z','h'};
        String s[] = {"1","8","4","0","7","3"};
        @Test
        public void testsort() throws Exception {
            Arrays.sort(a);
            assertEquals("[2, 3, 4, 5, 6, 9]",Arrays.toString(a));
            Arrays.sort(b,1,4);
            assertEquals("[d, a, t, y, z, h]",Arrays.toString(b));
            assertEquals('t',b[2]);
            //assertEquals('a',b[0]);           //异常情况
            Arrays.sort(s);
            assertEquals("[0, 1, 3, 4, 7, 8]",Arrays.toString(s));
        }
    }
    

    (2).binarySearch类
    该方法使用二分搜索法来搜索指定的数组,以获得指定对象,返回要搜索元素的索引值
    测试代码

    public class ArraysTest extends TestCase{
        int a[] = {2,5,6,4,9,3};
     @Test
        public void testbinarySearch() throws Exception {
            Arrays.sort(a);
            assertEquals(3,Arrays.binarySearch(a,5));
            //assertEquals(-1,Arrays.binarySearch(a,10));     //异常情况
            //assertEquals(-2,Arrays.binarySearch(a,0));     //异常情况    
        }
    }
    

    测试截图

    charAt异常

    split异常

    String测试通过截图

    sort异常

    binarySearch异常

    Arrays测试通过

    代码托管

  • 相关阅读:
    抽象类和接口
    Thread线程
    ArrayList、Vector和LinkedList
    Java并发编程:Callable、Future和FutureTask
    java开发JDBC连接数据库代码
    @Async的简单用法总结
    微信/企业微信的分享功能
    IOS11 底部输入框被手机输入法遮住
    MySQL 数据库设计总结
    Java 多个文件压缩下载
  • 原文地址:https://www.cnblogs.com/zhangdeshuai/p/10746680.html
Copyright © 2011-2022 走看看