无法使用mockito模拟方法调用

min*_*der 0 java mockito

我正在编写一个测试用例,我试图使用mockito来避免通过控制台输入文本.但是在运行测试用例时,它等待在控制台中输入一些东西(这也是我无法做到的),而不是从mockito中获取它.如果有人能提供帮助,我将不胜 测试代码如下所示:

SongsNameUpdater songsNameUpdater = new SongsNameUpdater();
bufferedReader = mock(BufferedReader.class);
when(bufferedReader.readLine()).thenReturn("test Path");
songsNameUpdater.updateSongNames();
Run Code Online (Sandbox Code Playgroud)

主要代码是:

public class SongsNameUpdater {
       public void updateSongNames() throws IOException {
               bufferedReader = new BufferedReader(new InputStreamReader(System.in));
               String path = bufferedReader.readLine();
               System.out.println(path);
       }

}
Run Code Online (Sandbox Code Playgroud)

Omn*_*est 5

您必须传递BufferedReader模拟,例如喜欢updateSongNames(bufferedReader)并且不在方法中实例化它