java test-1 JUnit 简介

ddatsh

dev #java
public class Max {

   public int max(int a, int b) {

      if (a > b) {
         return a;
      } else {
         return b;
      }
   }
}
public class Test {

   public static void main(String[] args) {

      Max max = new Max();
      if (2 == max.max(1, 2)) {
         System.out.println("pass");
      } else {
         System.out.println("fail");
      }
   }
}

main()方法测试缺陷

不能把测试代码分离

添加新测试方法,要在main() 添加方法调用

没有打印出测试结果和期望结果,例如,expected: 2, but actual: 1

需要对打印或者输出结果进行人为的判断

……

JUnit

JUnit 3

public class XXTest extends TestCase{

   public void setUp() throws Exception {
   }

   public void tearDown() throws Exception {
   }

   public void testAdd() {
   
   }
}

必须继承自TestCase 测试方法必须test开头

对错误的测试,只能通过fail产生一个错误,try里assertTrue(true)来测试

JUnit 4

用 Java5 Annotation 简化测试用例的编写,更灵活与方便

JUnit5

子项目及不同模块组成

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit3或4的兼容性

JUnit Vintage提供TestEngine在JUnit 5平台上运行基于JUnit 3和JUnit 4的测试的实现

生命周期

@Annotations

JUnit5 JUnit4
@Test @Test
@TestFactory N/A
@DisplayName N/A
@BeforeEach @Before
@AfterEach @After
@BeforeAll @BeforeClass
@AfterAll @AfterClass
@Nested N/A
@Tag N/A
@Diable @Ignore
@ExtendWith N/A

@Assertions

JUnit5 JUnit4
fail fail
assertTrue assertTrue
assertThat N/A
assertSame assertSame
assertNull assertNull
assertNotSame assertNotSame
assertNotEquals assertNotEquals
assertNotNull assertNotNull
assertFalse assertFalse
assertEquals assertEquals
assertArrayEquals assertArrayEquals
assertAll
assertThrows