Java 如何验证调用的静态方法是否具有精确的参数?
我有以下测试方法:Java 如何验证调用的静态方法是否具有精确的参数?,java,unit-testing,mockito,powermock,Java,Unit Testing,Mockito,Powermock,我有以下测试方法: public static Map<String, CrxEntity> getCrxEntitiesByMixin(Session readSession, String rootPath, SupportedLocale locale, String mixin, String idPropertyName, Set<String> propertyNamesToStore) throws RepositoryException {
public static Map<String, CrxEntity> getCrxEntitiesByMixin(Session readSession, String rootPath, SupportedLocale locale, String mixin, String idPropertyName, Set<String> propertyNamesToStore) throws RepositoryException {
return getCrxEntitiesByMixin(readSession, rootPath, locale, mixin, idPropertyName, propertyNamesToStore, null, false);
}
如何解决我的问题?我找到了答案。
Powermockito的语法非常混乱:
PowerMockito.verifyStatic();
StaticUtils.getCrxEntitiesByMixin(eq(sessionMock), eq("rootPath"), eq(SupportedLocale.EN), eq("mixin"), eq("idPropName"), eq(Sets.<String>newHashSet()), eq((List<String>)null), eq(false));
PowerMockito.verifyStatic();
StaticUtils.getCrxEntitiesByMixin(eq(sessionMock)、eq(“rootPath”)、eq(SupportedLocale.EN)、eq(“mixin”)、eq(“idPropName”)、eq(Sets.newHashSet()、eq((List)null)、eq(false));
完整示例:
我认为错误已经很清楚了:您正在传递null,而verify()需要模拟。我遗漏了什么吗?你能建议如何重写代码吗?我认为这个想法很清楚
org.mockito.exceptions.misusing.NullInsteadOfMockException:
Argument passed to verify() should be a mock but is null!
Examples of correct verifications:
verify(mock).someMethod();
verify(mock, times(10)).someMethod();
verify(mock, atLeastOnce()).someMethod();
Also, if you use @Mock annotation don't miss initMocks()
PowerMockito.verifyStatic();
StaticUtils.getCrxEntitiesByMixin(eq(sessionMock), eq("rootPath"), eq(SupportedLocale.EN), eq("mixin"), eq("idPropName"), eq(Sets.<String>newHashSet()), eq((List<String>)null), eq(false));