概述
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);
最后
以上就是烂漫石头为你收集整理的Junit测试相关的全部内容,希望文章能够帮你解决Junit测试相关所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复