Mockito使用

Mockito是用于生成模拟对象或者直接点说,就是”假对象“的工具。一般用于联合JUnit进行测试。

使用mockito大致可以划分为以下几个步骤:

①    使用 mockito 生成 Mock 对象;

Class1Mocked obj=mock(Class1Mocked.class);

②    定义(并非录制) Mock 对象的行为和输出(expectations部分);

when(obj.hello("z3")).thenReturn("hello l4"); //hello函数sout"hello "+name

③    调用 Mock 对象方法进行单元测试;

String actual=obj.hello("z3");
assertEquals("hello l4",actual);

④    对 Mock 对象的行为进行验证。

verify(obj).hello("z3"); //verify(obj,times(1)).hello("z3"); //可以加参数验证次数

具体再举个简单例子分析:


List mock = mock( List.class );
when( mock.get(0) ).thenReturn( 1 );
assertEquals( "预期返回1", 1, mock.get( 0 ) );// mock.get(0) 返回 1

mock是List模拟的对象,拥有 List 的所有方法和属性。when(xxxx).thenReturn(yyyy); 是指定当执行了这个方法的时候,即定义对象的行为,返回 thenReturn 的值,即定义对象的输出,这个过程相当于是对模拟对象的配置过程,为某些条件给定一个预期的返回值。

注意:

  • 对于 static 和 final 方法, Mockito 无法对其 when(…).thenReturn(…) 操作。
  • 当我们连续两次为同一个方法使用when(xxxx).thenReturn(yyyy);定义的时候,只会采用最新的一次。但是支持迭代风格的设定。
  • 如果没有定义,则只能返回默认值。mock 实例默认的会给所有的方法添加基本实现:返回 null 或空集合,或者 0 等基本类型的值,具体取决于方法返回类型。

对于没有返回值的方法,使用:

when(obj).notify(); 或者doNothing().when(obj).notify();

 

另外,mockito的注解也很强大,以后有机会再继续学习

https://www.jianshu.com/p/f6e3ab9719b9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mockito是一个用于Java的开源测试框架,用于创建和管理模拟对象(mock objects)。它可以帮助我们进行单元测试,特别是在测试依赖对象时非常有用。 在Mockito中,我们可以使用注解来简化模拟对象的创建。例如,使用`@Mock`注解可以创建一个模拟对象,使用`@InjectMocks`注解可以将模拟对象注入到被测试对象中。 Mockito还提供了一些方法来验证模拟对象的交互和行为。例如,使用`verify`方法可以验证方法是否被调用,使用`times`方法可以指定方法被调用的次数,使用`never`方法可以验证方法是否从未被调用。 另外,Mockito还支持设置模拟对象的行为。我们可以使用`when`方法来设置模拟对象方法的返回值,使用`doReturn`方法来设置模拟对象方法的行为。 总之,Mockito是一个强大的测试框架,可以帮助我们进行单元测试,并且使用注解可以简化模拟对象的创建。通过验证和设置模拟对象的行为,我们可以更好地测试我们的代码。 #### 引用[.reference_title] - *1* *2* *3* [【码农教程】手把手教你Mockito使用](https://blog.csdn.net/AI_Green/article/details/129163693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值