- 软件测试:黑盒测试、白盒测试
- 单元测试属于白盒测试
- 使用 Junit 进行单元测试:导包,生成测试类,run as junit
JUnit 3
- 执行顺序:setUp() -> testXxx() -> tearDown()
// JUnit 3
// 测试类继承 TestCase 类
public class EmployeeDAOTest extends TestCase {
// 初始化操作
protected void setUp() throws Exception {
}
// 扫尾操作
protected void tearDown() throws Exception {
}
// 测试单元,public 修饰、无返回、无参数、方法名以 test 作为前缀的方法
public void testXxx() throws Exception {
}
}
JUnit 4
- @BeforeClass、@AfterClass 标注的方法需要使用
static
修饰 - 执行顺序:@BeforeClass ->(@Before -> @Test -> @After 多个测试方法)—> @AfterClass
// JUnit 4
public class EmployeeDAOTest {
@Before
public void init() throws Exception {
}
@After
public void destory() throws Exception {
}
// 测试单元,public 修饰、无返回、无参数、@Test 标注的方法
@Test
public void testXxx() throws Exception {
}
}
断言
Assert 类 ,断言失败提示 message
- Assert.assertEquals(message, expected, actual):断言相等
- Assert.assertSame(message, expected, actual):断言是同一个对象
- Assert.assertNotSame(message, expected, actual):断言不是同一个对象
- Assert.assertTrue(message, condition):断言 condition 应该为 TRUE
- Assert.assertFalse(message, condition):断言 condition 应该为 FALSE
- Assert.assertNull(message, object):断言对象 object 为 null
- Assert.assertNotNull(message, object):断言对象 object 不为 null
- Assert.assertThat(T actual, Matcher matcher):org.hamcrest.Matcher
- Assert.void assertThat(String reason, T actual, Matcher matcher)
- @Test 注解@Test(expected = ArithmeticException.class):期望该方法出现 ArithmeticException 异常@Test(timeout = 400):期望该方法在 400 毫秒之内执行完成