[英]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.