如何将参数注入到JUnit 5扩展中

问题描述 投票:2回答:1

是否可以将ParameterResolver提供的参数注入(或获取)扩展名?

以下示例使用Spring和RestAssured,但我正在寻找更通用的解决方案:

在测试课程中,我可以执行以下操作:

@BeforeEach
void setUpRestAssured(@LocalServerPort int port) {
    RestAssured.port = port;
}

如果我想将其放入扩展中,则可以实现BeforeEachCallback

public class RestAssuredExtension implements BeforeEachCallback {
    @Override
    public void beforeEach(ExtensionContext context) throws Exception {
        int port = ???
    }
}

[我知道我可以创建一个带有@LocalServerPort批注的字段,并使用AnnotationSupport来获取它,但这仅适用于因为Spring扩展注入了它。我正在寻找一种更通用的方法,该方法可以与使用参数解析器的其他扩展一起使用。

java junit junit5 junit5-extension-model
1个回答
0
投票

已经经历了生命周期方法和扩展的当前实现,但我看不到解决该问题的通用方法。 Jupiter的扩展机制将需要一种访问其他扩展的方法-至少是注册参数解析器。您可能要在https://github.com/junit-team/junit5处创建问题并请求该功能。

© www.soinside.com 2019 - 2024. All rights reserved.