使用powermockito来模拟静态方法。我做错了什么?

时间:2018-06-12 17:04:54

标签: powermockito

我想使用powermock在类(下面的类的片段)上声明一个静态方法:

licenseId

下面列出了测试类的相关部分。在设置模拟时,如果我显式设置整数参数的值,然后使用相同的值调用,一切都按预期工作。对function1的调用返回testServiceProxy。

但是,我想要做的是返回该值,无论传递什么值的整数。为此,我注释掉第一行:

public class TestService<T> {
    public static <T> TestService<T> function1(Class<T> rawType, Object id) {

并从第二行删除评论。

执行此操作后,对function1的调用将返回null。

为什么?

// PowerMockito.when(TestService.function1(Subscription.class,id)).thenReturn(testServiceProxy);

1 个答案:

答案 0 :(得分:1)

经过进一步的工作,我逐渐明白,你不能具体说明一个值,而是指定另一个值。

此外,我需要使用Mockito类来确保调用正确的函数。

PowerMockito.when(TestService.function1(Mockito.any(Class.class), Mockito.any(String.class))).thenReturn(testServiceProxy);

此方法调用正确设置要在我的测试用例中使用的模拟。