gpt4 book ai didi

java - 如何将参数注入(inject) JUnit 5 扩展

转载 作者:行者123 更新时间:2023-12-05 07:11:15 29 4
gpt4 key购买 nike

是否可以将 ParameterResolver 提供的参数注入(inject)(或以其他方式获取)到扩展中?

以下示例使用 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 扩展注入(inject)了它。我正在寻找一种更通用的方法,该方法可以使用参数解析器与其他扩展一起使用。

最佳答案

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

关于java - 如何将参数注入(inject) JUnit 5 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60844976/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com