我用一个静态方法在另一个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个记录:
如何实现这种情况?