Arrays和String单元测试(课下作业,选做)
在IDEA中以TDD的方式对String类和Arrays类进行学习- 测试相关方法的正常,错误和边界情况
-
- String类
- - charAt
- - split
-
- Arrays类
- - sort
- - binarySearch
具体内容:
一、String类相关方法的单元测试
- charAt
该方法返回位于字符串的指定索引处的字符,字符串的索引从零开始,其中index是指字符的索引,即下标。
- split
该方法是用于分隔字符串,得到一个字符数组。
测试结果:
代码如下:
import junit.framework.*; import org.junit.Test; import java.lang.String; public class TestString extends TestCase { String a = new String("zengxiangjie."); String b = new String("zeng-xiang-jie"); String split = "Java is my favourite class"; @Test public void testcharAt() throws Exception{ assertEquals('z',a.charAt(0));//边界情况 assertEquals('g',a.charAt(8));//正常情况多选一 assertEquals('.',a.charAt(12));//正常情况 } @Test public void testSplit() { assertEquals("Java",split.split(" ")[0]);//返回字符数组,边界情况 assertEquals("favourite",split.split(" ")[3]);//返回字符数组,正常情况 assertEquals("zeng",b.split("-")[0]);//返回字符数组,边界情况 assertEquals("xiang",b.split("-")[1]);//返回字符数组,正常情况 } }
异常结果:
- 查找位置小于0
- 查找位置溢出
二、Arrays类相关方法的单元测试
- sort
用于数组排序,默认是升序排列,但是可以通过修改compareTo中的返回值来变为降序排列
- binarySearch
使用二分搜索法来搜索指定的数组,以获得指定对象,返回要搜索元素的索引值
测试结果:
代码如下:
import junit.framework.*; import org.junit.Test; import java.util.Arrays; public class TestArrays extends TestCase { int[] c = new int[]{2,3,1,9,5,0,8,6,7}; int[] d = new int[] {9, 8, 1, 7, 6, 2}; @Test public void testBinarySearch() throws Exception{ assertEquals(0,Arrays.binarySearch(c,2)); assertEquals(4,Arrays.binarySearch(d,6)); assertEquals(1,Arrays.binarySearch(c,3)); assertEquals(-4,Arrays.binarySearch(d,5)); } @Test public void testSort() throws Exception{ Arrays.sort(c); Arrays.sort(d); assertEquals(0,c[0]);//边界情况 assertEquals(7,c[6]);//正常情况 assertEquals(9,d[5]);//边界情况 assertEquals(7,d[3]);//正常情况 } }
异常情况
- 下标越界
码云链接(https://gitee.com/zxjacdl/zxj175221/tree/master/arrayandstr)