JUnit(测试纯java代码)
注解
注解 | 说明 |
---|---|
@Test | 该方法是测试方法 |
@Before | 该方法在测试方法之前执行,一个Test触发一次 |
@After | 该方法在测试方法之后执行,一个Test触发一次 |
@BeforeClass | 该static方法在类的所有方法之前执行 |
@AfterClass | 该static方法在类的所有方法之后执行 |
@Ignore | 该方法不执行 |
套件测试
同时运行多个文件里的单元测试用例
1 2 3 4 5 |
@RunWith(Suite.class) @Suite.SuiteClasses({ TestJunit1.class, TestJunit2.class }) |
在待执行的方法上使用 @Test 注解, 所有有 @Test 注解的方法在 run 的时候都会执行
断言(Assert)
- void assertEquals(boolean expected, boolean actual) 检查两个变量或者等式是否平衡
- void assertTrue(boolean expected, boolean actual) 检查条件为真
- void assertFalse(boolean condition) 检查条件为假
- void assertNotNull(Object object) 检查对象不为空
- void assertNull(Object object) 检查对象为空
- void assertSame(Object expected, Object actual)方法检查两个相关对象是否指向同一个对象
- void assertArrayEquals(expectedArray, resultArray) 方法检查两个数组是否相等
参数化测试
使用不同的值测试同一个用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
public class DemoUnit { private int p1; private int p2; private int sum; public DemoUnit(int p1, int p2, int sum) { this.p1 = p1; this.p2 = p2; this.sum = sum; } public int getP1() { return p1; } public void setP1(int p1) { this.p1 = p1; } public int getP2() { return p2; } public void setP2(int p2) { this.p2 = p2; } public int getSum() { return sum; } public void setSum(int sum) { this.sum = sum; } } ******************************************************************* // 将参数化测试的类使用 @RunWith(Parameterized.class) 注解 @RunWith(Parameterized.class) public class TestTUtil { private TUtil tUtil; private DemoUnit demoUnit; // 创建一个公共的构造函数,构造参数和@Parameterized.Parameters返回的相同 public TestTUtil(DemoUnit demoUnit) { this.demoUnit=demoUnit; } @Before public void init(){ tUtil = new TUtil(); } @Test public void textAdd() { int result = tUtil.add(demoUnit.getP1(), demoUnit.getP2()); System.out.println(result);//输出3,4,5,6,7,8 Assert.assertEquals(result, demoUnit.getSum()); } //创建一个由 @Parameters 注释的公共的静态方法,它返回一个对象的集合(数组)来作为测试数据集合 //或直接返回一个数组, 不过构造函数的构造参数也和一个数组的参数类型一致 //集合里的一组数据将用于该类内的所有 @Test 方法, 所有 @Test 方法执行后换下一组 //返回值是 Collection 的子类 @Parameterized.Parameters public static Collection produced() { ArrayList<DemoUnit> demoUnits=new ArrayList<DemoUnit>(); demoUnits.add(new DemoUnit(1,2,3)); demoUnits.add(new DemoUnit(1,3,4)); demoUnits.add(new DemoUnit(1,4,5)); demoUnits.add(new DemoUnit(1,5,6)); demoUnits.add(new DemoUnit(1,6,7)); demoUnits.add(new DemoUnit(1,7,8)); return demoUnits; } } |
0 Comments