PowerMockito单元测试陷井一例

在使用PowerMockito进行单元测试时,遇到一个问题:Target类的成员变量依赖于AA.getManager(),需Mock该方法。原本在@BeforeClass中设置Mock,但发现仅单个测试方法成功,其余失败。原因是PowerMockito为每个测试方法创建独立对象,导致@BeforeClass中的Mock设置只执行了一次。解决方案是将Mock设置改为局部代码块,确保每个测试方法都能正确Mock。
摘要由CSDN通过智能技术生成

今天写单元测试碰到一个情况,被测试类Target的成员变量的值需要mock

private aaDao = AA.getManager().getDao();

类似这样的,我需要把AA.getManager方法Mock掉。不然在初始Target的时候会报错。
测试类ATest.java

@InjectMocks
private Target target = PowerMockito.spy(new Target());//这句会报错

于是我试着写了下面的方法使得AA.getManager()返回一个Mock对象,避免getDao报错

@BeforeClass
public static void setupBeforeClass(){
    PowerMockito.mockStatic(AA.class);
    PowerMockito.doReturn(Mockito.mock(Manager.class
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值