一、
JUnit是一个Java语言的单元测试框架,MyEclipse开发环境已经集成了JUnit作为单元测试的工具。
二、MyEclipse导入JUnit
首先我们先写一个Person类,然后对其中的eat()和run()方法进行测试。
public class Person {
public void eat(){
System.out.print("eat!!!");
}
public void run(){
System.out.print("run!!!");
}
}
测试类:
package cn.itcast.test;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class PersonJunit {
@Test
public void testRun(){
Person p=new Person();
p.run();
}
@Test
public void testEat(){
Person p=new Person();
p.eat();
}
}
在每个方法前加上注解@Test,你会发现如图所示效果,这是只需要Ctrl+1,将JUnit导入即可。此时即可在Outline视图中对两个方法进行测试啦。
那么我们在没有接触Junit之前,都是在main方法里面测试程序,如测试完run()方法之后注释掉,然后测试eat()方法。如果要测试100多方法,使用main的方式岂不繁琐?而我们使用Junit就可以想测那个测那个。
三、before和after
在实际使用Junit进行单元测试的时候,我们还需要使用before和after注解。before用于提前初始化资源,在每个测试方法前执行,after用于释放资源,在每个测试方法后执行。举个栗子。之前每一个方法都new了person。我们可以把person的初始化工作交给before。
public class PersonJunit {
Person p;
@Before
public void before(){
p=new Person();
}
@Test
public void testRun(){
p.run();
}
@Test
public void testEat(){
p.eat();
}
@After
public void after(){
System.out.println("after");
}
}
四、断言Assert
public class Person {
public String eat(){
System.out.print("eat!!!");
return "1";
}
public String run(){
System.out.print("run!!!");
return "2";
}
}
public class PersonJunit1 {
@Test
public void testRun(){
Person p=new Person();
Assert.assertEquals("4",p.run());//如果返回值和期望值是一样的
}
@Test
public void testEat(){
Person p=new Person();
p.eat();
}
}
Assert提供了assertEquals方法,用于判断实际的返回值与期望值是否一致。
1、期望值与实际值一致
2、期望值与实际值不一致