JUnit 5 如何从嵌套测试类中获取父测试的实例



我正在为 JUnit 5 实现一个 Mockito 扩展。假设我们处于嵌套测试中,并希望为父测试类创建模拟。

class RootTest{
  @Mock Foo mock;
  @Nested
  class NestedTest{
    @Test
    public void foo(){
       mock.bar();
    }
  }
}

为此,我们需要RootTest的实例,以便将模拟分配给用 @Mock 注释的字段。当前的问题是获取RootTest类的实例。第一次尝试是通过ExtensionContext.getParent()ExtensionContext.getTestInstance()获取它,但测试实例是为父实例null的。

问:如何获取嵌套类的父实例?反射可能会有所帮助,但不是一种选择,因为它依赖于编译器。

无法通过 ExtensionContext 访问外部测试实例。但是,如果让扩展实现 TestInstancePostProcessor ,则会为外部和内部测试实例调用它。事实上,它的目的是设置实例变量(有关示例,请参阅我们的示例 Mockito 扩展)。

相关内容

  • 没有找到相关文章

最新更新