-
Junit5-16-Template
测试模板
@TestTemplate方法不是常规的测试用例,而是测试用例的模板。
因此,根据注册提供程序返回的调用上下文的数量,将多次调用它。
因此,它必须与注册的 TestTemplateInvocationContextProvider 扩展一起使用。
测试模板方法的每次调用都表现为对相同生命周期回调和扩展的完全支持的常规@Test方法的执行。
请参阅为使用示例提供测试模板的调用...
2018-06-25 11:25:34 |
Test
-
Junit5-15-Parameterized Tests
参数化测试
参数化测试使使用不同参数多次运行测试成为可能。它们与常规的@Test方法一样被声明,但是使用 @ParameterizedTest注释。
此外,您必须声明至少一个源,该源将为每个调用提供参数,然后使用测试方法中的参数。
下面的示例演示了一个参数化测试,该测试使用@ValueSource注释指定一个字符串数组作为参数的来源。
实例
@ParameterizedTest
@V...
2018-06-25 11:13:52 |
Test
-
Junit5-14-Repeated Tests
重复测试
JUnit Jupiter提供了通过使用@RepeatedTest注释方法并指定所需重复次数的能力。重复测试的每次调用都表现为对相同生命周期回调和扩展的完全支持的常规@Test方法的执行。
下面的示例演示如何声明一个名为repeatedTest()的测试,它将自动重复10次。
@RepeatedTest(10)
void repeatedTest() {
// ......
2018-06-25 10:57:21 |
Test
-
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