使用mockito进行单元测试



我想使用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;
}

首先,您需要一个向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));
}

在这种情况下,您不需要使用mockito。模拟主要用于单元测试。测试中的对象可能依赖于其他(复杂)对象。为了隔离要测试的对象的行为,您可以用模拟真实对象行为的mock替换其他对象。如果实际对象不适合合并到单元测试中,这是有用的。

我建议先做一个单元测试教程,检查一下这个:http://www.vogella.com/tutorials/JUnit/article.html

相关内容

  • 没有找到相关文章

最新更新