PowerMockito踩坑指南

好久没用PowerMockito了,最近使用了一下,踩了一堆的坑,记录一下

1、对于测试类中包含@Autowired注解的变量

可以使用@Mock注解,被测试类使用@InjectMock注解,注意此时被测试的类还是实例化后的,而不是mock出来的,如下:

@Mock
private TimeService timeService;

@Mock
private AddressService addressService;

@InjectMocks
private TestController testController;

2、对于局部变量的mock(new 出来的局部变量)

方法一:在1的基础上,将被测试的类加入到@PrepareForTest中,这时再mock局部变量就会生效(mock一个对象,然后将局部变量的构造方法进行mock,返回mock出的对象),如下:

AddressService addressService = PowerMockito.mock(AddressService.class);

PowerMockito.whenNew(AddressService.class).withNoArguments()
.thenReturn(addressService);

PowerMockito.when(addressService.printAddress()).thenReturn("127.0.0.1");

方法二:将被测试的类进行mock,然后将局部变量进行

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值