JUnit测试书写练习(一)
程序员文章站
2022-04-05 17:09:09
...
练习1
计算机科学学生Peter开发的一个应用程序接受一个数并返回该数各位的和。您被分派的任务是在以下场景上创建测试用例:
取一位整数值作为输入的测试用例
取两位整数值作为输入的测试用例
取三位整数值作为输入的测试用例
在用户输入负值时使测试不通过的测试用例
在用户输入小数值时处理异常的测试用例您将如何完成此任务?
SumDigis.java package sumdigits; public class SumDigits { public int sum(int num) { int sum=0; while(num>0) { sum=sum+num%10; num=num/10; } return sum; } public static void main(String[] args) { // TODO code application logic here } }
SumDigitsTest.java package sumdigits; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; public class SumDigitsTest { public SumDigitsTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } //取一位整数值作为输入的测试用例 @Test public void testsumdigits1() { System.out.println("Testing 一位整数"); SumDigits sum = new SumDigits(); int expResult = 5; int result = sum.sum(5); assertEquals(expResult, result); } //取两位整数值作为输入的测试用例 @Test public void testsumdigits2() { System.out.println("Testing 两位整数"); SumDigits sum = new SumDigits(); int expResult = 7; int result = sum.sum(25); assertEquals(expResult, result); } //取三位整数值作为输入的测试用例 @Test public void testsumdigits3() { System.out.println("Testing 三位整数"); SumDigits sum = new SumDigits(); int expResult = 6; int result = sum.sum(150); assertEquals(expResult, result); } //在用户输入负值时使测试不通过的测试用例 @Test public void testsumdigits4() { System.out.println("Testing 负数不通过测试"); SumDigits sum = new SumDigits(); // String expresult = null; int expResult = -2; int result =sum.sum(-20); assertEquals(expResult,result); } //在用户输入小数值时处理异常的测试用例 @Test(expected = IllegalArgumentException.class) public void testsumdigits5(){ SumDigits sum = new SumDigits(); int expResult = 6; int result = sum.sum((int)150.00); //强制数据类型转换 assertEquals(expResult,result); } }
测试结果:
测试类书写模板:
@Test
public void 测试方法名(){
实例化java类对象;
期望值 = 手动计算测试用例的值;
实际值 = 实例化类对象.调用java方法(测试用例);
assertEquals(期望值,实际值);
}
练习2
Harry 开发了应用程序以检查输入的字符是元音还是辅音。该函数将一个字符取为输入,井在字符是元音字符的情况下返回vowel,否则返回consonant。现在他被分派的任务是通过为所有可能场景(例如检查元音和检查辅音)创建测试用例来测试此应用程序。如果测试用例不通过,应该显示相应的人可读的错误消息。
帮助Harry完成此任务。VowelConsonant.java package vowelconsonant; public class VowelConsonant { public String check(String character) { String v="vowel"; String c="consonant"; if(character=="a"||character=="e"||character=="i"||character=="o"||character=="u") { return v; } else { return c; } } public static void main(String[] args) { } }
VowelConsonantTest.java package vowel; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import vowelconsonant.VowelConsonant; public class VowelTest { public VowelTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } //字符是元音字符的情况下返回vowel @Test public void VowelTest1(){ VowelConsonant v = new VowelConsonant(); String expResult = "vowel"; String result = v.check("o"); assertEquals(expResult,result); } //字母是辅音字母的情况下返回consonant @Test public void VowelTest2(){ VowelConsonant v = new VowelConsonant(); String expResult = "consonant"; String result = v.check("f"); assertEquals(expResult,result); } }
测试结果: