如何写好Junit单元测试

Kelli ·
更新时间:2024-11-11
· 936 次阅读

  近准备做一个Junit测试的项目,先浅显研究了一下Junit4,稍作记录。   Junit4通过Annotation来表明各个方法的作用,常用到的是   @Test :测试方法,一个测试类中可以有多个,必须是public void的方法   @Before :同一个测试类中的每个测试方法之前运行一次,必须是public void 非 static的方法,一个类中可以有多个   @After :同一个测试类中的每个测试方法之后运行一次,必须是public void非 static的方法,一个类中可以有多个   @BeforeClass :同一个测试类中的所有测试方法运行之前运行一次,必须是public static void的方法,适合做一些代价较高且所有测试方法都可以共用的资源的分配工作   @AfterClass : 同一个测试类中的所有测试方法运行之后运行一次,必须是public static void的方法,适合做一些所有测试方法跑完后的资源释放工作   @Ignore :暂时不需要跑的方法   试着写了个测试类来使用到上述6个annotation

public class Calculator  { /** * @param args */ public Calculator(){ } public int add(int arg1, int arg2){ return (arg1 + arg2); } public int minus(int arg1, int arg2){ return (arg1 - arg2); } }

 

import java.util.Date; import org.junit.*; public class testBase { private static Calculator cal; @BeforeClass public static void beforeClass(){ System.out.println("BeforeClass"); cal = new Calculator(); } @Before public void before1(){ System.out.println(new Date()); } @Before public void before2(){ System.out.println("Before 2"); } @Test public void test1(){ System.out.println("Test 1"); Assert.assertEquals(2, cal.add(1, 1)); } @Test public void test2(){ System.out.println("Test 2"); Assert.assertTrue(1 == cal.minus(2, 1)); } @Test @Ignore public void test3(){ System.out.println("Test 3"); } @After public void after1(){ System.out.println(new Date()); } @After public void after2(){ System.out.println("After 2"); } @AfterClass public static void afterClass(){ System.out.println("AfterClass"); } }
运行结果如下
BeforeClass Before 2 Thu Nov 07 21:35:00 CST 2013 Test 1 Thu Nov 07 21:35:00 CST 2013 After 2 Before 2 Thu Nov 07 21:35:00 CST 2013 Test 2 Thu Nov 07 21:35:00 CST 2013 After 2 AfterClass
  可以看出BeforeClass和AfterClass都只执行一遍,Before和After 在每个case运行前后都执行一遍,多个Before或After运行顺序与放置顺序没有必然联系。标识为Ignore的方法没有被执行。

 



junit单元测试 junit 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章