我有以下代码:
PowerMockito.mockStatic(DateUtils.class); //And this is the line which does the exception - notice it's a static function PowerMockito.when(DateUtils.isEqualByDateTime (any(Date.class),any(Date.class)).thenReturn(false);
课程开始于:
@RunWith(PowerMockRunner.class)
@PrepareForTest({CM9DateUtils.class,DateUtils.class})
我得到org.Mockito.exceptions.InvalidUseOfMatchersException ......你不能在验证或存根之外使用参数匹配器......(错误在失败跟踪中出现两次 - 但都指向同一行)
在我的代码中的其他地方,何时使用完成并且它工作正常。此外,在调试我的代码时,我发现 any(Date.class) 返回 null。
我尝试了以下解决方案,我发现其他人认为这些解决方案很有用,但对我来说它不起作用:
添加
@After public void checkMockito() { Mockito.validateMockitoUsage(); }
或
@RunWith(MockitoJUnitRunner.class)
或
@RunWith(PowerMockRunner.class)
改成
PowerMockito.when(new Boolean(DateUtils.isEqualByDateTime(any(Date.class), any(Date.class)))).thenReturn(false);
使用
anyObject()
(它不编译)使用
notNull(Date.class)
或(Date)notNull()
代替
when(........).thenReturn(false);
Boolean falseBool=new Boolean(false);
和_
when(.......).thenReturn(falseBool);