[英]Real method getting called when Mockito doNothing method is called
[英]NullPointerException when doNothing() is called on Junit Mockito
我正在使用 Mockito 編寫我的單元測試,但是我在與我的測試 class 相同的 class 中存根方法時遇到了一些錯誤。
所以基本上,我正在測試我的服務 class MyService.class( Subject being testing),這就是我聲明我的 Mocks 和 @InjectMocks 的方式。
每當我在使用 doNothing() 時點擊 checkUserBackground() 方法時,我都會面臨 null 指針,因為該方法返回 void。 我也嘗試過使用 verify() 但我收到錯誤消息“需要但未調用”。
我如何通過這個錯誤? 被卡了13個小時,感謝一些幫助,謝謝!
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = "Strictness.LENIENT")
class MyServiceTest {
@InjectMocks
private MyService myService;
@Test
void testCreateUser() {
User user = new User();
user.setAge(25);
user.setName(Jack);
Mockito.doNothing().when(myService).checkUserBackground(user.getName(), true);
assertEquals(myService.createUser().getName(), "Jack");
}
}
這是實際的服務 class:
class MyService() {
public static void createUser(User user) {
checkUserBackground(user.getName(), true); //Null Pointer here
}
public void checkUserBackground(String name, Boolean newUser){
//some logic which doesnt matter
}
}
注釋@InjectMock
用於依賴注入——它真正的 class bean。 但稍后在方法中,您嘗試注入 bean 的模擬方法。 在您添加方法而不是注釋時,您的情況將是足夠的:
@Before
public void init() {
myService = Mockito.mock(MyService.class)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.