2

我想知道如何通过测试配置扩展。

场景:测试提供了一个应该在扩展中使用的值。

当前解决方案:该值被定义为测试中的字段,并由扩展通过扫描所有声明的字段并选择正确的字段(反射)来使用。

问题:这个解决方案是非常间接的。使用此扩展的人必须了解扩展内部并声明正确的字段(类型和值)。错误可以引导开发人员走向正确的方向,但尝试/错误会有点痛苦。

有没有办法使用例如带有值的注释来配置junit5扩展?

4

1 回答 1

2

您可以提供配置参数并在运行时通过ExtensionContext访问它们,或者从 5.1 开始,有一种编程方式可以通过@RegisterExtension注册自定义扩展实例。

从 JUnit 5 用户指南复制的示例:

@RegisterExtension
static WebServerExtension server = WebServerExtension.builder()
    .enableSecurity(false)
    .build();

@Test
void getProductList() {
    WebClient webClient = new WebClient();
    String serverUrl = server.getServerUrl();
    // Use WebClient to connect to web server using serverUrl and verify response
    assertEquals(200, webClient.get(serverUrl + "/products").getResponseStatus());
}
于 2018-02-26T12:34:43.390 回答