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就简单这么介绍了,我也是初学,如有错误,敬请勘正。