簡體   English   中英

JUnit 5如何從嵌套測試類中獲取父測試的實例

[英]JUnit 5 How to get the instance of parent test form a nested test class

我正在為JUnit 5實現Mockito擴展 假設我們處於嵌套測試中並且想要為父測試類創建模擬。

class RootTest{
  @Mock Foo mock;

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

為此,我們需要RootTest的實例,以便將RootTest分配給使用@Mock注釋的字段。 當前的問題是獲取RootTest類的實例。 第一次嘗試是通過ExtensionContext.getParent()ExtensionContext.getTestInstance()獲取它,但是父測試實例為null

問:如何獲取嵌套類的父實例? 反射可能有所幫助但不是一種選擇,因為它依賴於編譯器。

無法通過ExtensionContext訪問外部測試實例。 但是,如果讓擴展實現TestInstancePostProcessor ,則將為外部和內部測試實例調用它。 實際上,它旨在設置實例變量(請參閱我們的示例Mockito擴展示例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM