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 框架时,非常重要
的是要熟悉 () 的用法。


发布评论