单元测试之Mockito

gradle引入testImplementation "org.mockito:mockito-core:2.+"

magReader = mock(MagReader.class);

1.可以通过when方法来通过指定调用的某个方法的返回值。

when(magReader.read()).thenReturn(null);

 

2.使用verify方法来验证某个方法的调用方式。

List list = mock(List.class);

list.add("1");

verify(list).add("1");

验证是list对象是否调用add("1"),如果不是则会报以下错误:

Expected :list.add("2");

Actual :list.add("1");

verify方法可以同过参数设置为预计该函数被调用几次:

List list = mock(List.class);

list.add("1");

verify(list, never()).add("1");

verify(list, times(1)).add("1");

verify(list, times(2)).add("1");

上述代码分别是验证add方法被调用了0,1,2次。

//至少被调用一次

atLeastOnce();

//最少被调用几次

atLeast(int minNumberOfInvocations);

//最调用几次

times(int wantedNumberOfInvocations);、

//最多被调用几次

atMost(int wantedNumberOfInvocations);

//等价于

//verify(mock).someMethod();

//verifyNoMoreInvocations(mock);

only() ;

//

Calls calls(int wantedNumberOfInvocations)

//

NoMoreInteractions noMoreInteractions()

 

3.spy和mock相比,spy模拟出的对象是真实的对象,而mock不是,差距就是spy会运行真实的方法中代码,而mock不会。可以想到的是,如果真实函数中存在耗时操作也会进行测试耗时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值