簡體   English   中英

如何模擬在 class java Z587FEFE304B8E3505DE89580432C?DZ25C 中初始化的新 object

[英]How to mock for new object initialized in a class java junit?

如何模擬在 class 的方法中初始化的新 object? 像“它像失敗一樣失敗”想要但沒有被調用:invokeMyMethod() 實際上,與這個模擬的交互為零。 .....”我遵循了一個示例“https://stackoverflow.com/questions/5920153/test-class-with-a-new-call-in-it-with-mockito”。它沒有幫助。

Class Login { //existing design. cannot change.

 private MyClass myclass; 

 public void init() {  
  myclass = new MyClass();
  myclass.invokeMyMethod();
 }

}

///Junit

@ExtendWith(MockitoExtension.class)
class LoginTest {

 @InjectMocks
 Login login;

 @Test
 void testInit() {

 Login spyObj = Mockito.spy(login);
 MyClass myclass = Mockito.mock(MyClass.class);
 spyObj.init();
 verify(myclass).invokeMyMethod();// its failing like "Wanted but not invoked: invokeMyMethod() Actually, 
                                  //there were zero interactions with this mock.
}

}

您需要 PowerMock 和 Mockito。 但遺憾的是它不能與 JUnit5 一起運行。 如果您可以使用 JUnit 4 運行您的測試,那么這個問題的答案將為您提供一個起點。

暫無
暫無

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

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