模拟静态方法,不要调用真实方法

时间:2019-02-11 17:22:18

标签: java mocking powermock

我用一个静态方法在另一个jar中有一个类

public class AUtil {

public static String getAExpression(AActor aActor, String aUID, ADAO aDAO) throws Exception 
{ 
    ....... 
}

我想模拟该方法而不调用真实方法。

我已经使用PowerMockito尝试了几件事,但是它仍然调用了真正的方法。 我有一个用于测试的实用程序类

    @RunWith(PowerMockRunner.class)
@PrepareForTest(AUtil.class)
public class TestUtilities {
public static DXActivity helper(DXActivityDAO activityDAO, DXActivityExternalIdDAO activityEidDAO, DXCampaignActivityDAO campaignActivityDAO,
                                                        DXC cam, DXAdv adv, String aName, String aUID, String pId, String kpi, Date startDate)
            throws Exception {

        ADAO aDAO = (ADAO) ConfigContext.getDao(A.class);

        PowerMockito.mockStatic(AUtil.class);
        //PowerMockito.spy(AUtil.class);

        doReturn(kpi).when(AUtil.getAExpression(new A(cam.getObjectUid() + "-" + aUID, aUID,
                                                                                      new AActor(cam.getObjectUid()),
                                                                                      any(),
                                                                                      any(), any(), any(),
                                                                                      startDate, any(), null), aDAO));
}
}

我得到的错误是 java.lang.AssertionError:处理插入数据库失败,错误:>> 无效使用参数匹配器! 预期有2个符合条件的记录,有5个记录:

如何实现这种情况?

0 个答案:

没有答案