所以我打破我的代码位,使之更普遍,也更容易让别人用类似问题的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