-
Junit5-13-Test Interface And Default Method
测试接口和默认方法
JUnit Jupiter允许在接口默认方法上声明@Test、@RepeatedTest、@ParameterizedTest、@TestFactory、@TestTemplate、@BeforeEach和@AfterEach。
如果测试接口或测试类被@TestInstance(Lifecycle.PER_CLASS)注释,
则@BeforeAll和@AfterAll可...
2018-06-25 09:54:15 |
Test
-
Junit5-12-DI for Constructors and Methods
依赖注入
在所有以前的JUnit版本中,都不允许测试构造函数或方法具有参数(至少不允许使用标准的Runner实现)。
作为JUnit Jupiter的主要变化之一,测试构造函数和方法现在都允许有参数。这允许更大的灵活性,并支持构造函数和方法的依赖注入。
ParameterResolver用于测试扩展的API,可以在运行时动态解析参数。
如果测试构造函数或@Test、@TestFactor...
2018-06-25 09:13:46 |
Test
-
Junit5-11-Nested Tests
嵌套测试
嵌套测试使测试编写者有更多的能力来表达几组测试之间的关系。这是一个精心设计的例子。
实例
TestingAStackDemo.java
堆栈测试例子
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions....
2018-06-25 09:13:46 |
Test
-
Junit5-10-Test Instance Lifecycle
测试实例生命周期
为了让单独的测试方法在隔离中执行,并且为了避免由于可变测试实例状态而产生的意外副作用,
JUnit在执行每个测试方法之前创建了一个新的测试类的实例。
这种“每个方法”的测试实例生命周期是JUnit Jupiter中的默认行为,类似于JUnit的所有以前版本。
如果您希望JUnit Jupiter在同一个测试实例上执行所有的测试方法,只需使用@TestInstance(L...
2018-06-25 08:53:21 |
Test
-
Junit5-08-Tagging and Filtering
标签和过滤
可以通过 @Tag 注释对测试类和方法进行标记。这些标记稍后可用于筛选测试发现和执行。
语法规则
标签不能为空或 null。
trim() 的标记不能包含空格。
trim() 的标签不能包含ISO控制字符。
trim()的标记不能包含以下任何保留字符:
,: 逗号
...
2018-06-25 08:50:21 |
Test
-
Junit5-08-Condition Test Execution
按条件执行测试用例
JUnit Jupiter中的ExecutionCondition扩展API允许开发人员以编程方式启用或禁用容器或测试。
这种情况最简单的例子是内置的DisabledCondition,它支持 @Disabled 注释(参见禁用测试)。
除了@Disabled之外,JUnit Jupiter还支持 org.junit.jupiter.api.condition 中的其他...
2018-06-25 05:35:32 |
Test
-
Junit5-07-Disabled
@Disabled
可以通过 @Disabled 注释、条件测试执行中讨论的注释之一
或自定义ExecutionCondition来禁用整个测试类或单个测试方法。
实例
整个类
整个类中的测试方法,都会被跳过
DisabledClassDemo.java
import org.junit.jupiter.api.Disabled;
import org.junit.jup...
2018-06-25 05:35:32 |
Test
-
Junit5-06-Assumptions
Assumptions
JUnit Jupiter附带了JUnit 4提供的假设方法的一个子集,并添加了一些可以很好地用于Java 8 lambdas的假设方法。
所有的JUnit Jupiter假设都是在 org.junit.jupiter.api.Assumptions 的静态方法。
实例
AssumptionsDemo.java
package com.github....
2018-06-24 23:39:35 |
Test