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

    20175209 《Arrays和String单元测试》

    题目

    在IDEA中以TDD的方式对String类和Arrays类进行学习,测试相关方法的正常,错误和边界情况

    • String类

      • charAt
      • split
    • Array类

      • sort
      • binarySearch

    单元测试

    一、String类

    代码
    import junit.framework.TestCase;
    import org.junit.Test;
    
    public class TestString extends TestCase{    
        String str1 = new String("Hello java");    
        String str2 = new String("你好,爪哇");    
        String s = new String("http://jwc.besti.edu.cn/ wo zhen hao kan");    
        @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));           //异常情况    
        }    
        @Test    
        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("kan",s.split("\s")[4]);          //边界情况        
            //assertEquals("jwc.besti.edu.cn",s.split("/")[1]);              //异常情况       
            //assertEquals(" ",s.split(" ")[-1]);                            //异常情况    
        }
    }
    
    charAt方法异常情况截图


    split方法异常情况截图


    测试通过截图

    二、Arrays类

    代码
    import junit.framework.TestCase;
    import org.junit.Test;
    import java.util.Arrays;
    
    public class TestArrays 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));    
        }    
        @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));     //异常情况    
        }
    }
    
    sort方法异常情况截图

    binarySearch方法异常情况截图

    测试通过截图

    测试过程中遇到的问题及解决方法

    • 问题1:在测试split方法时,发现正常情况下的运行报错,Actual返回值为引用

    • 解决方法:查找书上第八节关于split方法的讲解,发现分解后的内容时存放在String数组中,因此在使用时需要通过数组下标调用,在使用时加上下标即可

    • 问题2:split方法在测试使用“/”符号作为分隔符时assertEquals("jwc.besti.edu.cn",s.split("/")[1]); 出现错误

    • 查看字符串s中的内容时发现连续出现了两个“/”符号,因此下标为1中的内容应为空,要比较的字符串的内容应该存放在下标为2的内存中

    • 问题3:在测试binarySearch方法时,开始时没有先将数组中的内容进行排序

    • 解决方法:数组中没有出现重复的元素,所以运行时没有问题。在查看了API文档后,在代码中添加了对数组的排序并重新进行测试

    • 问题4:测试sort方法时,Actual返回值为引用,并不是排序的结果

    • 解决办法:将数组转化为字符串形式输出即可输出数组全部内容

    • 问题5:在测试split方法时想用“.”做分隔符,但是写成“56”的形式编译时出现问题,必须写成“[.]”的形式

    • 解决方法:暂时还没有解决……

    代码托管

    https://gitee.com/wangzihong/20175209/tree/master/课上练习及课下作业/test![]

  • 相关阅读:
    dedecms内容页调用缩略图 缩略图多种用法(借鉴)
    线性回归
    Jupyter Notebook 快捷键
    etcd入门
    Centos7 Docker安装
    TFIDF介绍
    Ceph 概念理解
    Nifi简介及核心概念整理
    经典排序算法总结
    Hbase协处理器
  • 原文地址:https://www.cnblogs.com/wangzihong0213/p/10745733.html
Copyright © 2011-2022 走看看