返回
Mockito 中文文档 ( 2.0.26 beta )
后端
2024-01-31 16:23:31
Mockito 2.0.26 beta 版本已正式发布。欢迎前来了解最新功能和变更。
本中文文档将为您详细介绍 Mockito 的用法和最佳实践,帮助您在测试中轻松使用 Mockito。
目录
- 迁移到 Mockito 2.0
- 验证某些行为
- 如何做一些测试桩 (Stub)
- 参数匹配器 (matchers)
- 验证函数的确切、最少、从未
迁移到 Mockito 2.0
如果您从较早版本的 Mockito 迁移,请注意以下变更:
- 对参数匹配器进行了重构,现在更加灵活和易用。
- 引入了新的验证方法,使您可以更轻松地验证方法调用的确切、最少或从未发生。
验证某些行为
使用 Mockito 验证方法调用的最简单方法是使用 verify()
方法。例如:
@Test
public void should_do_something() {
// 创建一个 mock 对象
MyClass mock = Mockito.mock(MyClass.class);
// 使用 mock 对象调用方法
mock.doSomething();
// 验证方法是否被调用
Mockito.verify(mock).doSomething();
}
如何做一些测试桩 (Stub)
有时候,您需要创建一个测试桩,而不是一个 mock 对象。测试桩可以用来模拟真实对象的特定行为。使用 Mockito 创建测试桩的方法如下:
@Test
public void should_do_something() {
// 创建一个测试桩
MyClass stub = Mockito.stub(MyClass.class);
// 设置测试桩的行为
Mockito.when(stub.doSomething()).thenReturn("something");
// 使用测试桩调用方法
String result = stub.doSomething();
// 验证方法是否被调用
Mockito.verify(stub).doSomething();
// 断言结果
assertEquals("something", result);
}
参数匹配器 (matchers)
Mockito 提供了各种参数匹配器,可以用来匹配方法调用的参数。例如:
any()
匹配任何参数eq()
匹配指定的值argThat()
匹配满足特定条件的参数
验证函数的确切、最少、从未
Mockito 提供了以下方法来验证函数调用的次数:
times()
验证函数被调用了指定次数atLeast()
验证函数被调用了至少指定次数atMost()
验证函数被调用了至多指定次数never()
验证函数从未被调用
例如:
@Test
public void should_do_something() {
// 创建一个 mock 对象
MyClass mock = Mockito.mock(MyClass.class);
// 验证方法被调用了三次
Mockito.verify(mock, times(3)).doSomething();
}