Я написал тестовый пример Junit для следующей функции. При проверке покрытия JACOCO. Он показывает, что только тестовый блок покрывается тестовым случаем. Я новичок в написании тестовых примеров. Как блок исключения и улов может быть покрыт в тестовыхНаписание теста Junit для исключения исключения и блока catch
Вот метод
public static List<Student> readCsvFile(String fileName)
{
BufferedReader fileReader = null;
//logic to read file
}
catch (Exception e)
{
System.out.println("Error in CsvFileReader !!!");
e.printStackTrace();
} finally
{
try
{
fileReader.close();
} catch (IOException e)
{
System.out.println("Error while closing fileReader !!!");
e.printStackTrace();
}
}
return students;
}
И TestMethod
@Test
public void ReadCsvFileTest()
{
String fileName = "test.csv";
List<Student> result = new ArrayList<Student>();
result = CsvFileReader.readCsvFile(fileName);
Student student1 = null;
Iterator<Student> it = result.iterator();
while (it.hasNext())
{
Student s = it.next();
if ("471908US".equals(s.getId()))
{
student1 = s;
break;
}
}
assertTrue(student1 != null);
}
Вы получите только покрытие для блока исключений, если выбрано исключение. – Compass
'CsvFileReader.readCsvFile (" notexisting.csv ")' должен ввести catch –
Поскольку Compass рекомендует вам вызывать исключение внутри блока try во время выполнения теста. Обычно я использовал бы насмешливую структуру, такую как Mockito, чтобы достичь этого. Но, возможно, в вашем случае его достаточно, чтобы передать недопустимое имя файла. – morgelo