所以我打破我的代碼位,使之更普遍,也更容易讓別人用類似問題的Mockito當()不工作
這是我的主要代碼明白:
protected void methodA(String name) {
Invocation.Builder requestBuilder = webTarget.request();
requestBuilder.header(HttpHeaders.AUTHORIZATION, authent.getPassword());
response = request.invoke();
if (response.equals("unsuccessfull")) {
log.warn("warning blabla: {} ({})");
} else {
log.info("info blabla {}");
}
}
}
}
而我的測試代碼如下所示:
@Test
public void testMethodA() throws Exception {
final String name = "testName";
this.subject.methodA(name);
Authent authent = Mockito.mock(Authent.class);
when(authent.getPassword()).thenReturn("testPW");
assertEquals(1, logger.infos.size());
}
正如我所說的代碼是更復雜的我打破了下來,並使其更短.....希望它仍然是可讀的。
我的問題不是我的when().thenReturn()
不起作用,因此我的代碼不會進一步......我猜我的嘲笑由於某種原因無法正常工作。
這裏藏漢我得到一個空指針異常,因爲AUTHENT是「空」即使我實現它,你在這裏做 – Nali
你確定了'主題(Authent Authent);'構造函數將'authent'參數賦值給它的'Authent authent'字段? – davidxxx
是的我在我的主類和具有以下代碼'this.authent = authent;' – Nali