我正在编写一个测试用例,试图使用Mockito避免通过控制台输入文本。但是在运行测试用例时,它会等待在控制台中输入某些内容(这也是我无法执行的操作),而不是从模仿者那里获取它。如果有人可以帮助,将不胜感激。测试代码如下:
SongsNameUpdater songsNameUpdater = new SongsNameUpdater();
bufferedReader = mock(BufferedReader.class);
when(bufferedReader.readLine()).thenReturn("test Path");
songsNameUpdater.updateSongNames();
主要代码是:
public class SongsNameUpdater {
public void updateSongNames() throws IOException {
bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String path = bufferedReader.readLine();
System.out.println(path);
}
}
最佳答案
您必须通过BufferedReader模拟,例如类似于updateSongNames(bufferedReader)
,而不是在方法中实例化它
关于java - 无法使用Mockito模拟方法调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11169256/