java測試框架Junit我也是初步接觸,這裏對一些用法進行簡單的說明。便於以後自己查閱
@Test
這個標籤主要用在要進行測試的方法上。廢話不多說,看代碼。
//File : Person.java
public class Person(){
public void run(){
System.out.println("run");
}
}
//File : TestPerson.java
public class TestPerson{
@Test
public void testRun(){
Person p = new person();
p.run();
}
}
代碼中用到了兩個類,一個是被測試類Person,一個是測試類TestPerson,在TestPerson中,有一個方法testRun用於測試Person類,在這個方法上加了一個@Test註解,此時就可以在eclipse中選擇Junit Test測試來運行,如果運行成功,那麼進度條時候綠色,否則是紅色。這樣就不用寫main方法來測試了,比較便利。
@Before和@After
這兩個標籤用於在測試標籤@Test註解的方法之前之後運行,沒運行一次@Test註解的方法,被這兩個註解的方法, 兩個就要運行一次。
看代碼,還是上面的兩個類,不過加了一些方法:
//File : Person.java
public class Person(){
public void run(){
System.out.println("run");
}
public void eat(){
System.out.println("eat");
}
}
//File : TestPerson.java
public class TestPerson{
Person p = null;
@Test
public void testRun(){
p.run();
}
@Test
public void testEat(){
p.eat();
}
@Before
public void initialize(){
System.out.println("initialize");
p = new Person();
}
@After
public void destory(){
System.out.println("destory");
p = null;
}
}
上述代碼的運行結果是:
initialize
eat
destory
initialize
run
destory
可以看出,一共運行了帶有@Test註解的方法兩次,帶有@Before和@After的註解方法也運行了兩次。另外兩個註解@BeforeClass和@AfterClass
正好相反,不管有多少個@Test
,他們只會運行一次。
這兩對註解都可以用來在測試時對資源的創建和銷燬。
Assert
斷言在MyEclipse中,被棄用了,我也不知道怎麼回事。那這裏我也就不多說了。
Assert(斷言)就是用來判定方法返回值與自己預期的是否符合。
//File : Person.java
public class Person(){
public boolean run(){
System.out.println("run");
}
public String eat(){
System.out.println("eat");
}
}
//File : TestPerson.java
public class TestPerson{
Person p = null;
@Test
public void testRun(){
p.run();
/*這裏判斷run()方法返回的字符串是不是和字符串1相等
*相等就成功執行,否則不能執行
*/
Assert.assertEquals("1", p.run());
}
@Test
public void testEat(){
p.eat();
/*這裏判斷eat返回的bool類型和給出的bool值false是否相等
*/相等就成功執行
Assert.assertEquals(false, p.eat());
}
@Before
public void initialize(){
System.out.println("initialize");
p = new Person();
}
@After
public void destory(){
System.out.println("destory");
p = null;
}
}
Assert還有許多的方法,使用都很簡單,大家可以去看API。
對於Junit就簡單這麼介紹了,我也是初學,如有錯誤,敬請勘正。