无论我尝试过什么,都会在存根语句上结束NullPointerException。 方法测试:如何正确存根外部方法? NullPointer嘲讽语句
public boolean selectEntity(final List<T> entities) {
if (entities.contains(helper.getLastEntity())) {
return true;
}
}
上面的代码就足够了,原因(在单元测试)甚至不能进入条件语句。澄清:getLastEntity返回字段
private T lastEntity
对于Helper类的对象。 T是一个接口。
我最好的尝试是:
private @Mock Helper helper;
private @Mock List<T> entities;
...
@Test
public void testSelectEntity(){
when(entities.contains(notNull(T.class))).thenReturn(true);
when(helper.getLastEntity()).thenReturn((T) anyObject());
}
如何这里着手?
UPDATE:按照你的建议,我改写了测试(模拟考试是为确保初始化这个时候:))
final DummyT dummyT = new DummyT();
when(helper.getLastEntity()).thenReturn(dummyT);
when(entities.contains(dummyT).thenReturn(true);
assertTrue(objectUnderTest.selectEntity(entities));
其中DummyT实现T.上了车方法执行空指针,if语句指着。
这是唯一不起作用的测试吗? – dimoniy
你注入了模拟吗? – aNish
这不是'anyObject()'的用途。你实际上必须创建你想要返回的对象。你正在犯的同样的错误OP上http://stackoverflow.com/questions/21532988/stubbing-two-methods-in-a-mock-is-throwing-exception-using-mockito-and-spring-mo –