您的位置:首页 > 其它

JUnit 4 简单使用

2010-04-23 14:18 211 查看
先看一下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(){...}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: