• 软件测试:黑盒测试、白盒测试
  • 单元测试属于白盒测试
  • 使用 Junit 进行单元测试:导包,生成测试类,run as junit

JUnit 3

  • 执行顺序:setUp() -> testXxx() -> tearDown()
  1. // JUnit 3
  2. // 测试类继承 TestCase 类
  3. public class EmployeeDAOTest extends TestCase {
  4. // 初始化操作
  5. protected void setUp() throws Exception {
  6. }
  7. // 扫尾操作
  8. protected void tearDown() throws Exception {
  9. }
  10. // 测试单元,public 修饰、无返回、无参数、方法名以 test 作为前缀的方法
  11. public void testXxx() throws Exception {
  12. }
  13. }

JUnit 4

  • @BeforeClass、@AfterClass 标注的方法需要使用 static 修饰
  • 执行顺序:@BeforeClass ->(@Before -> @Test -> @After 多个测试方法)—> @AfterClass
  1. // JUnit 4
  2. public class EmployeeDAOTest {
  3. @Before
  4. public void init() throws Exception {
  5. }
  6. @After
  7. public void destory() throws Exception {
  8. }
  9. // 测试单元,public 修饰、无返回、无参数、@Test 标注的方法
  10. @Test
  11. public void testXxx() throws Exception {
  12. }
  13. }

断言

  • 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 毫秒之内执行完成