JUnit
使用JUnit3.8.2的操作步骤及注意事项
1.为项目导入JUnit的jar包(Buildpath-->AddLibrary-->JUnit)
2.新建一个名为test的SourceFolder,用于存放测试类源代码.
3.目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面.
4.测试类的命名规则:假如目标类是Calc,那么测试类应该命名为TestCalc或者是CalcTest.
5.测试类必须要继承于TestCase父类.
6.测试方法必须要满足publicvoid修饰,无方法参数,方法名必须以test开头.
7.重写setUp()方法和tearDown()方法以便于对测试数据的初始化和回归操作.
8.执行顺序:setUp(测试方法之前),testMethod(执行的测试方法),tearDown(测试方法之后).
@Override
protectedvoidsetUp()throwsException{
calc=newCalc();
}
@Override
protectedvoidtearDown()throwsException{
System.out.println("tearDowninvoked");
}
9.为了测试私有方法,可以使用反射机制.
10.TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试.
使用JUnit4.8.1的操作步骤及注意事项
1.为项目导入JUnit的jar包(Buildpath-->AddLibrary-->JUnit)
2.新建一个名为test的SourceFolder,用于存放测试类源代码.
3.目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面.
4.JUnit4并不需要测试类继承TestCase父类.
5.在一个测试类中,所有被@Test注解所修饰的publicvoid方法都是TestCase(测试用例),可以被JUnit所执行.
6.规范:虽然JUnit4并不要求测试方法名以test开头,但最好还是按照JUnit3.8.2的要求那样,以test作为测试方法名的开头.
7.在JUnit4中,通过@Before注解实现与JUnit3.8.2中的setUp方法同样的功能.
8.在JUnit4中,可以使用@BeforeClass与@AfterClass注解修饰一个publicstaticvoidno-arg的方法,这样被@BeforeClass注解所修饰的方法会在所有测试方法执行前执行.
9.注解@lgnore可用于修改测试类与测试方法,当修改测试类时,表示忽略掉类中的所有测试方法;当修改测试方法是,表示忽略掉该测试方法.
10)参数化测试(Parameters):当一个测试类使用参数化运行器运行时,
需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行,
而使用参数化运行器运行;在参数化运行类中提供参数的方法上要使用@Parameters注解来修饰,
同时在测试类的构造方法中为各个参数赋值(构造方法是由JUnit调用的),
最后编写测试类,它会根据参数的组数来运行测试多次。
11)在JUnit4中,如果想要同时运行多个测试,需要使用两个注解:
@RunWith(Suite.class)以及@Suite.SuiteClasses(),通过这两个注解分别指定使用Suite运行器来运行测试,
以及指定了运行哪些测试类,其中的@SuiteClasses中可以继续指定Suite,这样JUnit会再去寻找里面的测试类,
一直找到能够执行的TestCase并执行之。
12)JUnit4中可以使用JUnit3的方法进行测试,而不使用注解机制,即JUnit3可以完美升级至JUnit4,但4更灵活、方便。
Eg:
//在所有测试方法前执行一次
@BeforeClass
//在所有测试方法后执行一次
@AfterClass
//在每个测试方法前执行
@Before
//在每个测试方法后执行
@After
//测试方法执行超过1000毫秒后算超时,测试将失败
@Test(timeout=1000)
//测试方法期望得到的异常类
@Test(expected=Exception.class)
//执行测试时将忽略掉此方法,如果用于修饰类,则忽略整个类
@Ignore("notreadyyet")
@Test