📜  Mockito-创建模拟(1)

📅  最后修改于: 2023-12-03 15:17:40.289000             🧑  作者: Mango

Mockito-创建模拟

Mockito是一个用于创建和管理Mock对象的Java库。Mock对象是一种轻量级对象,它可以替换真实对象在测试中使用,以减少测试的复杂度和提高测试的可重复性。Mockito提供了各种方法来创建Mock对象,本文将介绍如何使用Mockito创建模拟。

1. 基本语法

Mockito的核心是创建Mock对象,它们是虚拟的对象,而不是真实的对象。使用Mockito创建Mock对象非常简单:只需要使用Mockito类的静态方法mock()即可:

List<String> mockedList = mock(List.class);

在上面的示例代码中,我们创建了一个名为"mockedList"的Mock对象,它模拟了一个List对象。这个Mock对象可以像真实的List对象一样使用,但是它没有任何实际数据。

2. 返回指定值

Mock对象默认返回null或0,但是我们可以使用Mockito指定它们返回的值。例如,我们可以使用thenReturn方法指定Mock对象调用某个方法时返回指定的值:

List<String> mockedList = mock(List.class);
when(mockedList.get(0)).thenReturn("first");

在上面的示例代码中,我们在Mock对象上调用get(0)方法时,它将返回字符串"first"。使用thenReturn方法指定Mock对象返回指定值的语法非常简单,只需在when方法后面添加调用语句,并在thenReturn方法中指定要返回的值。

3. 抛出异常

如果我们想在Mock对象调用某个方法时引发异常,可以使用thenThrow方法。例如,我们可以使用以下代码指定Mock对象在调用某个方法时引发NullPointerException异常:

List<String> mockedList = mock(List.class);
when(mockedList.get(0)).thenThrow(new NullPointerException());

在上面的示例代码中,我们使用thenThrow方法指定当调用Mock对象上get(0)方法时引发NullPointerException异常。

4. 验证方法调用

除了模拟对象方法的返回值和异常,Mockito还提供了一种验证方式,即验证方法是否调用,并且验证调用次数和顺序。例如,我们可以使用以下代码验证Mock对象的add方法是否被调用了一次:

List<String> mockedList = mock(List.class);
mockedList.add("one");
verify(mockedList).add("one");

在上面的示例代码中,我们首先在Mock对象上调用add方法,然后使用verify方法验证Mock对象的add方法是否被调用了一次,并且被调用时参数是"one"。

5. 结论

Mockito是一个非常强大的Java库,可以帮助我们轻松创建和管理Mock对象,以减少测试复杂度和提高测试可重复性。通过本文的介绍,我们了解了Mockito的一些常见用法,包括创建Mock对象、指定Mock对象的返回值和抛出异常、验证Mock对象的方法调用等。希望本文可以为您在测试中使用Mockito提供帮助。