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