我试图用powermock来模拟我的服务的一个私有方法,方法是为它的参数传递mockito匹配器“eq”,其中一个参数是用jetbrains的@NotNull装饰器注解的。
当我运行测试时,我得到了以下错误:
java.lang.参数非法异常:Y的@NotNull参数X的参数不能为空
测试目标
import org.jetbrains.annotations.NotNull;
...
class Service {
...
private Map<String, Object> computeDataModel(User user, @NotNull Configuration configuration, Object providedDataModel) {...
}
测试类别
PowerMockito.when(service, "computeDataModel", eq(user), eq(configuration), eq(providedDataModel)).thenReturn(dataModel);
我也尝试过使用任何(Configuration.class),但没有成功。
你知道怎么处理吗?谢谢你的关注
1条答案
按热度按时间6uxekuva1#
这实际上与注解无关,而是与使用空值调用real方法有关。
调用真实的方法。
eq
是一个匹配器,返回null
,有效地调用了具有3个空参数的方法。如果你想避免调用真实的方法,你可以使用PowerMockito的另一种方法: