Java 单元测试
单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能!
单元测试规则:
1、每一个测试方法上使用@Test进行修饰
2、每一个测试方法必须使用public void 进行修饰
3、每一个测试方法不能携带参数
4、测试代码和源代码在两个不同的项目路径下
5、测试类的包应该和被测试类保持一致
6、测试单元中的每个方法必须可以独立测试
以上的6条规则,是在使用单元测试的必须项,当然junit也建议我们在每一个测试方法名加上test前缀,
表明这是一个测试方法。
计算类
public class Calculate {
public int add(int a,int b){
return a+b;
}
public int subtract(int a,int b){
return a-b;
}
public int multiply(int a,int b){
return a*b;
}
public int divide(int a,int b){
return a/b;
}
}
计算测试类
import org.junit.*;
import static org.junit.Assert.assertEquals;
public class CalculateTest {
@Test
public void testAdd(){
assertEquals(2, new Calculate().add(1,1));
}
@Test
public void testMultiply(){
assertEquals(6, new Calculate().multiply(2,3));
System.out.println(“testMultiply”);
}
@Test
public void testDivide(){
assertEquals(5, new Calculate().divide(10,2));
System.out.println(“testDivide”);
}
@BeforeClass
public static void setUpBeforeClass(){
System.out.println(“BeforeClass…”);
}
@AfterClass
public static void tearDownAfterClass(){
System.out.println(“AfterClass…”);
}
@Before
public void setUp(){
System.out.println(“Before…”);
}
@After
public void tearDown(){
System.out.println(“After…”);
}
}
Junit注解
@Test:这个注释说明依附在 JUnit 的 public void 方法可以作为一个测试案例。
@Before:有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注释是因为该方法需要在 test 方法前运行。
@After:如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们。
在public void方法加该注释是因为该方法需要在 test 方法后运行。
@BeforeClass:在 public void 方法加该注释是因为该方法需要在类中所有方法前运行。
@AfterClass:它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。
@Ignore:这个注释是用来忽略有关不需要执行的测试的
执行过程如下:
BeforeClass->Before->测试方法执行->After->AfterClass
Assert 类中的一些有用的方法列式如下:
void assertEquals(boolean expected, boolean actual):检查两个变量或者等式是否平衡
void assertTrue(boolean expected, boolean actual):检查条件为真
void assertFalse(boolean condition):检查条件为假
void assertNotNull(Object object):检查对象不为空
void assertNull(Object object):检查对象为空
void assertSame(boolean condition):assertSame() 方法检查两个相关对象是否指向同一个对象
void assertNotSame(boolean condition):assertNotSame() 方法检查两个相关对象是否不指向同一个对象
void assertArrayEquals(expectedArray, resultArray):assertArrayEquals() 方法检查两个数组是否相等。