Junit测试相关

Junit3.8

Junit3.8中,测试Case必须继承TestCase

使用TestCase对类进行测试

public void testDevide(){

int result;

try {

result = cal.divide(15, 4);

Assert.assertEquals(3, result);

} catch (Exception e) {

e.printStackTrace();

Assert.fail();

}

}

public void testDivideByZero(){

int result = 0;

Throwable ex = null;

String msg = null;

try{

result = cal.divide(10, 0);

Assert.fail("test failed,divided by 0");

}catch(Exception e){

ex = e;

msg = e.getMessage();

}

Assert.assertNotNull(ex);

Assert.assertEquals("divided by 0", msg);

Assert.assertEquals(0, result);

}

使用Test Suite自动运行多个TestCase

public class TestAll extends TestCase {

public static Test suite(){

TestSuite ts = new TestSuite();

ts.addTestSuite(CaculatorTest.class);

ts.addTest(new RepeatedTest(new CaculatorTest("testDivideByZero"), 10));

return ts;

}

}

Junit4

Junit4中测试Case不需要继承TestCase,而是使用注解annotation来标注。

在一个测试类中,所有被@Test修饰的public void 方法都叫做TestCase。

@Test 标注测试方法 (public void)有属性expected和timeout

Expected:指定异常类,如果抛出异常则测试成功

@Test(expected=Exception.class)

public void testCaculatedByZero() throws Exception{

cal.divide(10, 0);

}

Timeout:如果测试时间超出timeout指定值,则测试失败

@Test(timeout=600)

public void testCaculator(){

int result = 0;

try{

Thread.sleep(500);

result = cal.divide(15, 3);

}catch(Exception ex){

Assert.fail();

}

assertEquals(5, result);

}

@Before 初始化变量

@After 测试方法之后执行操作

@BeforeClass 初始化全局变量 在所有方法之前执行

只能修饰public static void 并且没有参数的方法,该方法只执行一次。

@AfterClass 所有方法之后执行

@Ignore 忽略一个测试,使得测试不执行,可以修饰方法、类

Value:忽略的原因

@Ignore("not ready") @Test(expected=Exception.class)

public void testCaculatedByZero() throws Exception{

cal.divide(10, 0);

}

@RunWith(value=运行器.class) 以指定运行器运行测试

参数化运行测试类

@RunWith(value=Parameterized.class)

以测试套件运行

@RunWith(Suite.class)

@SuiteClasses({Test1.class,Test2.class,…})

@Parameters 修饰返回测试参数的方法

@Parameters

public static Collection prepareData(){

Object[][] data = {

{1,10,10},

{2,4,2},

{5,15,3},

{-1,4,-4},

{0,0,3}

};

return Arrays.asList(data);

}

参数化运行测试例子:

Junit Runners(运行器):

Junit.awtui.TestRunner.run(XXXTest.class);

Junit.swingui.TestRunner.run(XXXTest.class);

Junit.textui.TestRunner.run(XXXTest.class);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值