Я новичок в модульном тестировании Junit и Mockito. Мне нужно провести модульное тестирование метода "processFiles (final File folder)"
Поскольку я вызываю другую службу внутри этого метода, называемого myService.isFileOk (data), я думаю, мне нужно издеваться над этой службой, чтобы сделать он возвращает истину.
Но когда я запускаю свой тест, я получаю исключение нулевого указателя.
Это часть кода из метода processFiles:
@EJB
private transient MyService myService;
public void processFiles(final File folder)
{
File[] fileNames = folder.listFiles();
List<String> lines = new ArrayList<>();
boolean isFirstFile = true;
try
{
for (File file : fileNames)
{
List<String> l = readContent(file, isFirstFile);
l.forEach(i -> lines.add(i));
isFirstFile = false;
}
String[] data = lines.get(0).trim().split(";");
if (!this.myservice.isFileOk(data))
{
// ...
}
else
{
// ...
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
И вот как я пытаюсь протестировать свой метод processFile
@Mock
public MyService myService ;
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Test
public void testWrite2() throws IOException {
final File tempFile1 = temporaryFolder.newFile("tempFile.txt");
final File tempFile2 = temporaryFolder.newFile("tempFile2.txt");
String[] data = {"a", "b" , "c" , "d"} ;
this.myService = new MyService();
MyService myService = Mockito.mock(MyService.class);
when(myService.isFileOk(data)).thenReturn(true);
//... myclass.processFiles(file);
}
Вы знаете, как мне приступить к имитации isFileOk? Заранее большое спасибо за вашу помощь