需要测试的类Person:
package cn.edu.lstc.junit; public class Person { public void run() { System.out.println("run..."); } public void eat() { System.out.println("eat..."); } public String a() { return "1"; } }
package cn.edu.lstc.junit; import org.junit.After; import org.junit.Before; import org.junit.Test; //before比beforeclass更常用 public class PersonTest { private Person p;//成员域 //以前在main里面测试,测试一个要注释一个 麻烦, //现在你想测试那个就在那个的方法上右击测试就ok @Before public void before(){ System.out.println("before"); p = new Person();//测试方法之前自动执行(每執行一個方法都要執行一次,因為不是static),可以放初始化代码片段 } @Test public void testRun() { p.run(); } @Test public void testEat() { p.eat(); } @After public void after(){ System.out.println("after"); p = null; } } //:out /* before eat... after before run... after */
package cn.edu.lstc.junit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; public class Person2Test { private static Person p;//成员域 @BeforeClass public static void beforeClass(){//需要是static System.out.println("beforeclass"); p = new Person();//测试方法之前自动执行(整个过程只执行一次因為是static),可以放初始化代码片段 } @Test public void testRun() { // Person p = new Person();//这代码可以注释掉了因为前面定义了一个全局的p对象,在测试方法时会自动执行 p.run(); } @Test public void testEat(){ // Person p = new Person();//同上 p.eat(); } @AfterClass public static void afterClass(){ System.out.println("afterclass"); p = null;//使其不再指向對象 } } //out: /* beforeclass eat... run... afterclass */assertEquals,assertTrue...
package cn.edu.lstc.junit; import org.junit.Assert; import org.junit.Test; public class Demo { @Test public void testA(){ Person p = new Person(); //斷言 // Assert.assertEquals("1",p.a());//通过测试,期望返回1,结果也返回了1 Assert.assertArrayEquals(new int[]{1,1}, new int[]{1,1});//測試通過 // Assert.assertArrayEquals(new int[]{1,1}, new int[]{1,2});//測試失敗 // Assert.assertTrue(false);//測試失敗, Assert.assertFalse(false);//測試成功 } }
JUnit单元测试举例(@Test,@Before,@After,@beforeClass,@afterClass,assertEquals,assertTrue等)
原文地址:http://blog.csdn.net/u012110719/article/details/44870757