标签:spin pdb 技术分享 pyw odi vsp null mdk lap
Junit是用于编写单元测试的框架。对于已经写好的函数,可以使用Junit生成单元测试代码。
自己的环境是:Linux
Java环境是:JDK1.7
IDE:Eclipse Java EE IDE for Web Developers.Version: Mars.2 Release (4.5.2) Build id: 20160218-0600
使用步骤
1、新建项目,命名为JUnit_Test,编写了一个用于计算的类:Calcutor,代码中故意留下一些问题,便于测试。代码如下:
1 package com.test.unit; 2 3 public class Calculator 4 { 5 // 加法 6 public int add(int a, int b) 7 { 8 return a + b; 9 } 10 11 // 减法 12 public int substract(int a, int b) 13 { 14 return a + b; // Bug: 正确的应该是a-b 15 } 16 17 // 乘法 18 public int multiply(int a, int b) 19 { 20 try 21 { 22 Thread.sleep(300);//用于性能测试 23 } 24 catch (InterruptedException e) 25 { 26 // TODO Auto-generated catch block 27 e.printStackTrace(); 28 } 29 return a * b; 30 } 31 32 // 除法 33 public int divide(int a, int b) throws ArithmeticException 34 { 35 if (b == 0) 36 { 37 throw new ArithmeticException(); 38 } 39 return a / b; 40 } 41 42 // 平方根 43 public void squareRoot(int n) 44 { 45 for (;;) 46 ; // Bug : 死循环 47 } 48 }
2、引入Junit库。选中项目,右键——Build Path——Add Libraries,选择JUnit,引入的包如下:
3、生成测试类。选中 Calcutor.java,右键——New——JUnit Test Case
选择setUp,再下一步,选择要进行测试的方法,及生成了选择的函数的测试用例,再根据需要自己编写代码。
主要测试类型有三种:
(1)常规的计算测试。调用函数计算值,输入自己期望的值,以及出错信息。如果调用函数计算的值与自己期望的值不相等,则抛出出错信息。
(2)用于性能测试。要让一个方法,200毫秒里运行完,如果这个方法200毫秒不能运行完,那么这个方法就应该抛出异常。
(3)异常测试。期待抛出异常,如果没有抛出异常,则报错。
测试代码如下:
1 package com.test.unit; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 8 public class CalculatorTest 9 { 10 Calculator cal; 11 12 @Before 13 public void setUp() throws Exception 14 { 15 cal = new Calculator(); 16 } 17 18 @SuppressWarnings("deprecation") 19 @Test 20 public void testAdd() 21 { 22 int rel = cal.add(10, 5);//调用函数计算的值 23 assertEquals("加法有问题", 15, rel);//传入计算的值,自己期望的值,出错信息 24 } 25 26 @Test 27 public void testSubstract() 28 { 29 int rel = cal.substract(20, 5); 30 assertEquals("减法有问题", 16, rel); 31 } 32 33 // 用于性能测试 34 // 要让一个方法,200毫秒里运行完,如果这个方法200毫秒不能运行完,那么这个方法就应该抛出异常 35 @Test(timeout = 200) 36 public void testMultiply() 37 { 38 int rel = cal.multiply(2, 4); 39 assertEquals("乘法有问题", 8, rel); 40 } 41 42 //异常测试 43 @Test(expected = ArithmeticException.class) 44 public void testDivide() 45 { 46 int rel = cal.divide(10, 0); 47 assertEquals("除法有问题", 5, rel); 48 } 49 50 }
4、完成测试代码的编写后,包管理器中选中CalculatorTest,右键——Run as——JUnit Test,进行测试,测试结果如下:
根据报错信息再修改自己的代码。
标签:spin pdb 技术分享 pyw odi vsp null mdk lap
原文地址:http://www.cnblogs.com/yangtze-yufei/p/6135559.html