我们在我们的项目中使用了maven,jersey,Mockito,并使用了java.util.logging作为Logs。在对模拟对象运行Junit测试时,log.log()方法抛出InvalidUseOfMatchersException。下面是示例代码。
import javax.inject.Inject;
import java.util.logging.Logger;
import java.util.logging.Level;
public class Sample{
@Inject
Logger log;
public String runLog(String name){
log.log(Level.INFO, "Name = "+name);
return "name";
}
}
public class SampleTest{
@InjectMocks
Sample sample;
@Mock
Logger log;
public void setup() throws Exception(){
MockitoAnnotations.initiMocks(this);
}
@Test
public void testRunLog(){
doNothing().when(log).log(any(Level.class), anyString());
String s = sample.runLog(anyString());
assertNotNull(s);
}
}
答案 0 :(得分:0)
问题出在这里
String s = sample.runLog(anyString());
您只能在anyString
和verify
方法中使用when
(以及所有其他匹配方法)。
如果您不关心传递的确切值,则传递一些常量或随机字符串。