У меня есть класс с методом, который извлекает содержимое ранее упомянутой страницы с помощью jsoup, затем подключается к загруженным ссылкам и создает список объектов для дальнейшей обработки.В настоящее время я пишу для него модульные тесты, это мои первые попытки задуматься об их качестве и значении, а также о том, как я могу протестировать блоки try-catch, включенные в этот метод.Когда я предоставляю недопустимую ссылку на jsoup, выдается исключение:
java.lang.IllegalArgumentException: Must supply a valid URL
java.lang.IllegalArgumentException: Malformed URL: abdcds.html
Как я могу перехватить его и зарегистрировать в тестах?Я хотел бы поблагодарить вас за все советы и подсказки к этим тестам!
Метод к тестам:
public ArrayList<WebContent> getContent(){
ArrayList<WebContent> list = new ArrayList<>();
try {
Document document = Jsoup.connect(rssUrl).get();
Elements link = document.select(".rssLink a");
Elements title = document.select(".name");
for(int i=0; i<title.size();i++){
String urlTitle = title.get(i).text();
String urlLink = link.get(i).attr("abs:href");
if(urlLink.equals("https://ekstraklasa.tv/ekstraklasa-tv,83,m.xml")) {
continue;
}
try {
Document xml = Jsoup.connect(urlLink).get();
list.add(new WebContent(urlTitle, urlLink, xml));
} catch (Exception error) {
System.out.println(error);
}
}
}
catch(Exception error) {
System.out.println(error);
}
return list;
}
Уже сделанные тесты:
private HtmlParser parser = new HtmlParser();
private ArrayList<WebContent> testList = new ArrayList<WebContent>();
private String stringType;
@Test
void getContentTests() {
parser.rssUrl = "";
assertEquals(testList, parser.getContent());
assertEquals(null, parser.getList());
assertEquals(0, parser.getContent().size());
assertThrows(Exception exception, parser.getContent());
parser.rssUrl = "abdcds.html";
assertEquals(testList, parser.getContent());
assertEquals(null, parser.getList());
assertEquals(0, parser.getContent().size());
parser.rssUrl = "https://www.tvn24.pl/rss.html";
assertEquals(29, parser.getContent().size());
assertNotEquals(testList, parser.getContent());
}