2024年3月31日发(作者:)

的用法

Mockito框架是一个 Java 单元测试框架,它的主要目的是帮助我们快速地创建测试

用例。Mockito 中的 when 方法是非常重要的一种方法,它实现了对象的模拟和被调用时

的返回结果。

when() 是 Mockito 的核心方法之一,用于指定当 Mock 对象被调用时应该返回什么。

事实上,在 Mock 对象被调用时,它会在内存中立即创建一个实例化对象的副本,因此我

们可以对该对象进行任何操作,但这些操作不会对原始对象造成任何影响。

```

when(()).thenReturn(value);

```

其中,mock是需要模拟的对象,method是该对象中要被测试的方法,value是在

Mock 对象调用 method 方法时应该返回的值。

需要注意的是,当使用 when() 方法时,我们必须调用模拟对象的方法并在其上使用

该方法。Mockito 提供了多个语法糖方法来更好地控制模拟对象的行为。

下面是一个简单的示例,用于说明 () 的一般用法。

假设我们有一个名为 Person 的类,其中包含一个名为 getFullName() 的方法:

```

public class Person {

private String firstName;

private String lastName;

public Person(String firstName, String lastName) {

ame = firstName;

me = lastName;

}

}

```

现在我们想测试这个方法是否按预期运行。() 可以用来模拟 Person

对象并调用它的 getFullName() 方法:

在这个例子中,我们用 () 方法创建了一个模拟对象,然后使用 when()

方法模拟了 getFullName() 方法的返回结果。最后我们使用 assertEquals() 方法来将

模拟结果与预期结果进行比较。由于模拟的结果是 "John Doe",所以测试通过。

需要注意的是,() 可以使用多个参数,以便根据不同的输入执行不同

的输出。例如:

```

@Test

public void testAdd() {

Calculator calculator = mock();

((1, 2)).thenReturn(3);

((4, 5)).thenReturn(9);

assertEquals(3, (1, 2));

assertEquals(9, (4, 5));

}

```

当我们传递 (1, 2) 作为参数时,将返回 3。当我们传递 (4, 5) 作为参数时,将返

回 9。

总结

() 是 Mockito 框架中非常重要的一种方法,它使我们能够有效地模拟

对象行为,从而更好地执行单元测试。() 方法支持多个参数来执行不同的

输出,以便根据输入值更好地控制模拟对象的行为。在应用 Mockito 框架时,非常重要

的是要熟悉 () 的用法。