Модульные тесты с методом try-catch блоков junit - PullRequest
0 голосов
/ 19 марта 2019

У меня есть класс с методом, который извлекает содержимое ранее упомянутой страницы с помощью 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());

}
...