咨询JUnit5中TestInfo的getTestClass()返回Optional.empty()的场景
JUnit5 TestInfo.getTestClass() 返回 Optional.empty() 的场景
下面这些场景里,TestInfo.getTestClass() 会返回 Optional.empty():
- 动态生成的测试用例:用
@TestFactory注解生成的动态测试,这类测试方法是运行时动态创建的,没有绑定到预先定义的测试类,所以无法获取到对应的Class对象。 - 运行时动态创建的测试类:如果测试类是通过字节码生成工具在运行时动态构建的,JUnit Jupiter没法获取到对应的Class实例,此时该方法返回空Optional。
- 扩展中的非测试类上下文:在JUnit扩展(Extension)的部分回调逻辑里,比如全局级别的扩展初始化操作,当前上下文不关联具体测试类,注入的TestInfo就没有绑定的测试类。
- 测试模板的独立用例:使用
@TestTemplate生成的某些测试用例,若执行时脱离了原始测试类的上下文,也会出现返回空Optional的情况。
内容的提问来源于stack exchange,提问作者divad
相关产品推荐
相关产品推荐

