测试是检查应用程序是否是工作按照要求,并确保在开发者水平,单元测试进入功能性的处理。单元测试是单一实体(类或方法)的测试。JUnit是一个Java编程语言编写的单元测试框架。 重要的是在测试驱动开发中,并且是一个家族的统称为xUnit单元测试框架中的一个。
JUnit促进“先测试再编码”,它强调建立测试数据的一段代码可以被测试,先测试再编码实现的想法。这种做法就像是“试了一下,码了一点,测试了一下,代码一点点……”这增加了程序员的工作效率和程序代码的稳定性,减少程序员的压力和花在调试的时间。
public class junitdemo {
@BeforeAll
public static void before() {
System.out.println("开始的时候");
}
@BeforeEach
void beforeeach() {
System.out.println("beforeeach");
}
@Test
public void testJunit() {
System.out.println("测试方法");
assertTrue(true);
}
@Test
void otherTest() {
assumeTrue(true);
System.out.println("另一个测试类");
assertNotEquals(1, 42, "这儿不一样?");
}
@Test
@Disabled("这儿不测试了")
void thirdTest() {
assumeTrue(true);
System.out.println("第三个测试类");
}
@AfterEach
void aftereach() {
System.out.println("aftereach");
}
@AfterAll
public static void after() {
System.out.println("结束");
}
}
运行之后输出:
开始的时候
beforeeach
另一个测试类
aftereach
这儿不测试了
beforeeach
测试方法
aftereach
结束
说明
@Test
@Test
会标记方法为测试方法,以便构建工具和 IDE 能够识别并执行它们。
BeforeAll
BeforeAll
只执行一次,执行时机是在所有测试和 @BeforeEach 注解方法之前。
BeforeEach
BeforeEach
在每个测试执行之前执行。
AfterEach
AfterEach
在每个测试执行之后执行。
AfterAll
AfterAll
只执行一次,执行时机是在所有测试和 @AfterEach 注解方法之后。
Disabled
Disabled
可以禁用测试,可以带参数,不过也可以不带此参数。
因为框架会为每个测试创建一个单独的实例,在 BeforeAll
/AfterAll
方法执行时尚无任何测试实例诞生。因此,这两个方法必须定义为静态方法。
断言
准备好测试实例、执行了被测类的方法以后,断言能确保你得到了想要的结果。否则,就说明当前测试失败了。