📜  Mockito-验证行为(1)

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

Mockito - 验证行为

Mockito 是一个流行的 Java 测试框架,它可以在测试中使用模拟对象来模拟依赖项,从而使测试更简单而且不依赖于外部系统。在测试时,我们经常需要验证对模拟对象的调用以确保它们按预期工作。这就是 Mockito 的验证行为部分。

安装 Mockito

要在 Java 项目中使用 Mockito,需要按照以下步骤安装它:

步骤 1:添加依赖项

您需要向项目添加以下依赖项:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.11.2</version>
    <scope>test</scope>
</dependency>

请注意,此依赖项的作用域是 test,这意味着它仅在测试过程中可用。

步骤 2:创建测试类

接下来,您需要创建一个测试类,并开始编写测试方法。在测试方法中,您将使用 Mockito 来创建模拟对象,并验证对它们的调用。

创建模拟对象

要创建一个模拟对象,可以使用 Mockito 的 mock() 方法。以下是一个简单的示例:

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

此代码为 List 接口创建了一个模拟对象。

验证方法调用

要验证对模拟对象的方法调用,可以使用 Mockito 的 verify() 方法。以下是一个示例:

List<String> list = mock(List.class);
list.add("one");
list.add("two");

verify(list).add("one");
verify(list).add("two");

此代码将验证 List 接口的 add() 方法被调用两次,参数分别为 "one" 和 "two"。

如果您希望验证方法未被调用,则可以使用 Mockito 的 never() 方法。以下是一个示例:

verify(list, never()).add("three");

此代码将验证 List 接口的 add() 方法未被调用,参数为 "three"。

您还可以验证方法的调用次数,使用 Mockito 的 times() 方法。以下是一个示例:

verify(list, times(2)).add(anyString());

此代码将验证 List 接口的 add() 方法被调用了两次,并且接受任何字符串参数。

验证方法调用顺序

有时您需要验证模拟对象方法的调用顺序。要在 Mockito 中实现此功能,请使用 InOrder 对象。以下是一个示例:

InOrder inOrder = inOrder(list);
list.add("one");
list.add("two");

inOrder.verify(list).add("one");
inOrder.verify(list).add("two");

此代码将验证 List 接口的 add() 方法分别在 "one" 和 "two" 的调用之后被调用。

结论

Mockito 是一个流行的 Java 测试框架,它可以在测试中使用模拟对象来模拟依赖项。在测试期间,我们经常需要验证对模拟对象的调用以确保它们按预期工作。Mockito 的验证行为部分提供了许多方法来验证模拟对象方法的调用及其顺序。这些功能使测试更简单,更准确,更可靠。