JUnit 4 简单使用

先看一下JUnit3与4的区别

 

从前用JUnit3的时候写一个测试的类就需要去继承TestCase这个类,像下面这类

public class NewTest extends   TestCase {

    public void setUp() { super
.setUp(); }
   
public void tearDown() { super
.tearDown(); }

   
public void testMethod1() { assertTrue( true
); }
   
public void
  test Method2 () {...}
   
public void
  test Method3 () {...}
}

JUnit3依赖反射来执行每个以test开头的方法,并且在setUp()和tearDown()这两个方法执行测试类里开始和结束时需要做的准备动作

 

下面再来看看JUnit4的实现

import static org.junit.Assert.*;
public class NewTest {

    @Before
    public void setUp() { ...}
    @After
   
public void tearDown() {...
}

    @Test
   
public void testMethod1() {Assert.assertTrue( true
); }
    @Test
   
public void
test Method2 () {assertTrue( true );}
    @Test
    public void test Method3 () {...}
}

JUnit4利用Java 5的Annotation特性简化测试用例的编写.现在测试类可以不用继承TestCase类,而以@Before与 @After两个标记代替了TestCase类中实现的setUp()与tearDown()这两个方法,并且方法名不是必须使用 setUp,tearDown,只要方法前使用了标记

 

断言(assert)

在JUnit4中,因为没有继承TestCase类,所以并不能直接使用assertXXX(),这些方法被封装在了 org.junit.Assert类中,你可以静态的引入该类,并在测试类中调用assertXXX(),或者是以 Assert.assertTrue( true );的形式去调用

 

异常测试(Exception)

对测试异常,JUnit 4可以用expected=Exception.class 来 期待一个预期的异常,而不必编写try{...}catch(XXX){...}

除零测试

@Test(expected = ArithmeticException. class )
public void
doDiv0() {
    
new Math().div( 127 , 0
);
}

 

超时测试(timeout)

在@Test,使用"timeout"参数。如果测试运行的时间超过指定的毫秒数,则测试失败。

@Test(timeout = 1 )
public void
  doLongTimeTask() {
    
double d = 0
;
    
for ( int i = 1 ; i < 10000000 ; i ++
)
        d
+=
i;
}

 

@BeforeClass 和 @AfterClass

    在JUnit3,如果想仅调用一次setUp()和tearDown()  for  all test cases, 使用TestSetup类;在JUnit4,就省事了:
@BeforeClass
public static void
  runBeforeClass (){...}

@AfterClass
public static void
  runAfterClass (){...}
 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值