使用Junit版本5.9.2
,我尝试以编程方式为带有@TestTemplate
注解的测试类构造函数添加参数解析器扩展。
我尝试使用@RegisterExtension
以编程方式添加扩展。
示例:
public class MyTestClass {
@RegisterExtension
static final TestDependencyResolver resolverExt = new TestDependencyResolver(/*...*/);
private final TestDependency dependency;
public MyTestClass(TestDependency dependency) {
this.dependency = dependency;
}
@TestTemplate
@ExtendWith(SomeContextProvider.class)
void test() {
//...
}
}
我试过:
1.使resolverExt
字段非static
1.将@ExtendWith(SomeContextProvider.class)
移至类级别
以及1和2的其它可能组合。
在所有情况下,没有注入ctor参数dependency
,也没有调用TestDependencyResolver::resolveParameter
,据我所知,这意味着对象是在没有注册TestDependencyResolver
/之前创建的,如果我错了,请纠正我。
我想达到的目标是可能的吗?谢谢。
1条答案
按热度按时间o2g1uqev1#
原来问题不是Junit5,而是我正在使用的
TestTemplateInvocationContextProvider
。我使用了
PactVerificationInvocationContextProvider
,它似乎有一个错误,并抛出NullPointerException
时,解决Ctor参数,我已经打开了一个issue,如果你想了解更多细节。