关于mock使用注意点

如果类A中使用了B类,如:

类A如下

class A {

B b;

boolean test1(int x){};

void test2(){};

}

类B如下:

class B {

C c;

boolean testb(Object o){};

}

在写A的单测时需要mock 掉B类中所有的方法,并且需要mock掉A类自己的一下方法,则需要在单测中A类引用上加注解@Spy,因为要mock掉B的方法,所以A累上还需要加@InjectMocks,如下:

class test_A {

@Spy

@InjectMocks

A a;

@Mock

B b;

@Before

void init(){

MockitoAnnotations.initMocks(this);

}

@Test

void test_A(){

Mockito.when(B.testb(Mockito.any())).thenReturn(true);

doReturn(true).when(a).test1(Mockito.anyInt());//如果要mockA类中自己的方法,必须将返回值放在前面

}

}

对于Object类型参数使用Mockito.any()就行,对于String类型参数使用Mockito.anyString(),

对于int类型参数使用Mockito.anyInt(),

对于无返回值的使用Mockito.doNothing().when(类名,如A).方法名(Mockito.any());这种可以mock掉A类自己无返回值的方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值