单元测试框架--Mockito基础

Mockito是一个流行的Java单元测试框架,用于创建模拟对象和验证行为。它可以简化测试,特别是在处理外部依赖时。基本操作包括创建模拟对象、设置行为、验证方法调用、参数匹配以及使用回调和捕获参数。Mockito还支持部分模拟、注解和重置功能,增强了测试的灵活性和控制力。
摘要由CSDN通过智能技术生成

Mockito

Mockito是一个用于Java单元测试的流行框架,用于模拟和验证对象的行为。它可以帮助你编写更简洁、可靠的单元测试,尤其适用于模拟外部依赖或协作对象。

以下是使用Mockito的一些常见操作:

1、创建模拟对象(Mock Objects)

 // 创建一个接口的模拟对象
MyInterface myMock = Mockito.mock(MyInterface.class);

// 创建一个具体类的模拟对象
MyClass myMock = Mockito.mock(MyClass.class);

2、设置模拟对象的行为:

// 模拟方法调用并返回特定值
Mockito.when(myMock.someMethod()).thenReturn(someValue);

// 模拟方法调用并抛出异常
Mockito.when(myMock.someMethod()).thenThrow(new SomeException());

// 模拟void方法
Mockito.doNothing().when(myMock).voidMethod();

3、验证模拟对象的方法调用:

// 验证方法被调用了几次
Mockito.verify(myMock, Mockito.times(1)).someMethod();

// 验证方法从未被调用
Mockito.verify(myMock, Mockito.never()).someMethod();

// 验证方法至少被调用一次
Mockito.verify(myMock, Mockito.atLeastOnce()).someMethod();

4、参数匹配:

// 使用任意参数匹配
Mockito.when(myMock.someMethod(Mockito.anyString())).thenReturn(someValue);

// 使用自定义参数匹配
Mockito.when(myMock.someMethod(Mockito.argThat(arg -> arg > 10))).thenReturn(someValue);

5、回调和捕获参数:

// 使用回调方式处理模拟方法的参数
Mockito.doAnswer(invocation -> {
    Object arg = invocation.getArgument(0);
    // do something with arg
    return null;
}).when(myMock).someMethod(Mockito.any());

// 捕获模拟方法的参数值
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
Mockito.verify(myMock).someMethod(captor.capture());
String capturedValue = captor.getValue();

以上只是Mockito的一些基本用法示例,Mockito还提供了更多的功能和特性,例如Spy(部分模拟)、注解支持、重置模拟对象等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值