我想使用mockito为bestElement()方法编写单元测试用例。 ClassA和ClassB在同一个包中。我想测试数组列表为空时以及数组列表不为空时。我是单元测试的新手。请指导我如何为这两种情况编写此方法的单元测试。还要提及是否需要任何其他信息。谢谢!
public class ClassA{
private final ArrayList<ClassB> array = new ArrayList<>();
public ClassB bestElement() {
if (array.isEmpty()) {
return null;
}
ClassB first = array.get(0);
array.remove(0);
return first;
}
答案 0 :(得分:1)
首先,您需要一种方法将新元素添加到ClassB列表中。你可以使用像getArray()这样的getter。
@Test
public void testBestIsFirstElement() {
ClassA a = new ClassA();
ClassB best = new ClassB();
ClassB b1 = new ClassB();
a.getArray().add(best);
a.getArray().add(b1);
assertThat(a.bestElement(), equalTo(best));
}
@Test
public void testBestIsNullIfListIsEmpty() {
ClassA a = new ClassA();
assertThat(a.bestElement(), equalTo(null));
}
答案 1 :(得分:0)
在这种情况下,您不需要使用mockito。模拟主要用于单元测试。被测对象可能依赖于其他(复杂)对象。要隔离要测试的对象的行为,可以使用模拟真实对象行为的模拟替换其他对象。如果将真实对象合并到单元测试中是不切实际的,那么这很有用。
我建议先制作一个单元测试教程,检查一下:http://www.vogella.com/tutorials/JUnit/article.html