问题描述
我很难将参数从测试类传递到其扩展类构造函数。 从JUnit4迁移到JUnit5时发生问题。 (对于JUnit4来说效果很好) 在JUnit4中,测试类如下所示:
$ ./test_args.py --production
Namespace(environment='production')
和支持课程如下:
public class TestClass{
@Rule
@Autowired
public SupportClass supportClass;
}
我正在JUnit5中尝试做(测试类):
@Component
@RequiredArgsConstructor
public class SupportClass implements TestRule {
private final EntityManager entityManager;
@Override
public Statement apply(Statement base,Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
final Statistics statistics = ((Session) entityManager.getDelegate()).getSessionFactory().getStatistics();
statistics.clear();
base.evaluate();
}
};
}
}
和支持类的外观:
@ExtendWith(SupportClass.class)
public class TestClass{
@Autowired
public SupportClass supportClass;
}
当我尝试执行测试时,我得到了 java.lang.NoSuchMethodException:.SupportClass.init()异常。我知道这与缺少非参数构造函数有关。不幸的是,我的SupportClass需要使用该参数。问题是如何从测试类传递此 entityManager 作为参数作为支持?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)