1
我需要测试一个将列表作为参数的方法。以下是示例代码:单元测试将列表作为参数的方法
public class C
{
private int x;
private String y;
//getters and setters
}
public class B
{
public void collectC(List<C> cList)
{
for(C c : cList)
{
System.out.println("int: " + c.getX() + "String: "+ c.getY());
}
}
}
因此,类B只是简单地收集类C的对象并使用增强for循环对它进行迭代。 现在,我想测试一个B类的方法。下面是测试代码。
public class BTest
{
private List<C> cList;
@Mock private C c;
@InjectMocks private B b;
@Before
public void setUp()
{
cList = new ArrayList<>();
cList.add(c);
MockitoAnnotations.initMocks(this);
}
@Test
public void testCollectC()
{
Mockito.when(c.getX()).thenReturn(5);
Mockito.when(c.getY()).thenReturn("Hello There");
b.collectC(cList);
}
}
所以,这是给我的错误NullPointerException
上System.out.println()
一条线在那里我调用上的“C”对象的方法。 然后我改变了我嘲笑列表和迭代器的代码,所以现在我的代码工作正常。但是我想知道上面提到的代码有什么问题以及它失败的原因?
您还没有初始化Ç –
哦,我傻:)谢谢,我找到了解决方案,由你和下面的答复中提到。 – tv1902