读书人

junit4今天遇到的有关问题

发布时间: 2012-12-24 10:43:13 作者: rapoo

junit4今天遇到的问题

?????? 昨天很奇怪的发现junit上面的annotation都没有生效,然后也看不出来问题,最后检查是发现我使用的是junit4,但是继承了TestCase,在继承了TestCase后好像所有的注解都会生效。

?????? 总结一句就是junit4不能继承TestCase。 什么时候有时间了看下源码,我感觉它应该是根据发射如果发现是TestCase的子类,那么就按照junit3的方式进行处理了。

?

下面再列举下junit3和4的区别:

?

??????? 这两个版本最大的区别在JUnit3.x中测试必须继承 TestCase,并且每个方法名必须以test开头。比如:testMethod1()而在JUnit4.x中不必继承TestCase,采用了注解的方式。只要在测试的方法上加上注解@Test即可,从而不必再遵循以前的一些显式约定和反射定位测试;在JUnit4.x中如果继承了TestCase,注解就不起作用了。并且有很重要的一点就是在JUnit4.x中继承了TestCase后,在OutLine视图中测试单个方法时,结果整个类都run 了。还有一点就是,在3.x中需要实现setUp和tearDown方法,而在4.x中无需这样,可以自定义需要在测试前和测试后的方法,在方法前加上 @before,@after就可以了。所以在JUnit4.x不必继承TestCase用注解即可对单个方法进行测试。

?

?

JUnit3?JUnit4必须引入类TestCase
import junit.framework.TestCase;必须引入
import org.junit.Test;
import static org.junit.Assert.*;必须继承类TestCase
class BaseClassTest extends TestCase不需要测试方法必须以test开头
public void testMethod ()不需要,
但是类开始的时候要标记 @Test通过assert*方法来判断结果
assertTrue(baseClass.method ().equals(“test.junit.BaseClass”));

读书人网 >编程

热点推荐