JUnit

使用JUnit3.8.2的操作步骤及注意事项

1.为项目导入JUnit的jar包(Build path -->Add Library -->JUnit)

2.新建一个名为test的Source Folder, 用于存放测试类源代码.

3.目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面.

4.测试类的命名规则:假如目标类是Calc,那么测试类应该命名为TestCalc或者是CalcTest.

5.测试类必须要继承于TestCase父类.

6.测试方法必须要满足public void修饰,无方法参数,方法名必须以test开头.

7.重写setUp()方法和tearDown()方法以便于对测试数据的初始化和回归操作.

8.执行顺序:setUp(测试方法之前),testMethod(执行的测试方法),tearDown(测试方法之后).

      @Override 

    protected void setUp() throws Exception { 

        calc = new Calc(); 

    } 

    @Override 

    protected void tearDown() throws Exception { 

        System.out.println("tearDown invoked"); 

    } 

9.为了测试私有方法,可以使用反射机制.

10.TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试.

使用JUnit4.8.1的操作步骤及注意事项

1.为项目导入JUnit的jar包(Build path -->Add Library -->JUnit)

2.新建一个名为test的Source Folder, 用于存放测试类源代码.

3.目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面.

4.JUnit4并不需要测试类继承TestCase父类.

5.在一个测试类中,所有被@Test注解所修饰的public void方法都是TestCase(测试用例),可以被JUnit所 执行.

6.规范:虽然JUnit4并不要求测试方法名以test开头,但最好还是按照JUnit3.8.2的要求那样,以test作为测试方法名的开头.

7.在JUnit4中,通过@Before注解实现与JUnit3.8.2中的setUp方法同样的功能.

8.在JUnit4中,可以使用@BeforeClass与@AfterClass注解修饰一个public static void no-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("not ready yet") 

    @Test 

猜你喜欢

转载自hefeng1987-net-163-com.iteye.com/blog/1441850