2014-10-12 2 views
0

Моя домашняя задача - прочитать URL-адрес и распечатать все гиперссылки по этому URL-адресу в файл. Я также должен представить тестовый пример junit с хотя бы одним утверждением. Я рассмотрел различные формы Assert, но я просто не могу придумать их использование, применимое к моему коду. Любая помощь, которая поможет мне в правильном направлении, будет отличной.Как я могу использовать утверждение для проверки этого java-кода?

(я никого не ищу, чтобы написать тестовый пример для меня, просто мало указаний на то, что направление я должен искать в)

public void saveHyperLinkToFile(String url, String fileName) 
throws IOException 
{ 

    URL pageLocation = new URL(url); 
    Scanner in = new Scanner(pageLocation.openStream()); 
    PrintWriter out = new PrintWriter(fileName); 

    while (in.hasNext()) 
    { 
     String line = in.next(); 
     if (line.contains("href=\"http://")) 
     { 
      int from = line.indexOf("\""); 
      int to = line.lastIndexOf("\""); 
      out.println(line.substring(from + 1, to)); 

     } 


    } 
    in.close(); 
    out.close(); 

} 

}

+0

Вы можете, например, проверить, был ли файл с именем 'filename' создан успешно, если ваш метод выполнил свою работу. – Tom

+1

Вызовите метод с URL-адресом http или файла и проверьте содержимое файла. –

ответ

1

Try разлагаться ваш метод на более простые:

  • List<URL> readHyperlinksFromUrl(URL url);
  • void writeUrlsToFile(List<URL> urls, String fileName);

Вы уже можете протестировать свой первый метод, сохранив образец документа в качестве ресурса и запустив его против этого ресурса, сравнив результат с известным списком URL-адресов.

Вы также можете протестировать второй метод, перечитав этот файл.

Но вы можете разложить вещи дальше:

  • void writeUrlsToWriter(List<URL> urls, Writer writer);
  • Writer createFileWriter(String fileName);

Теперь вы можете проверить свой первый метод, с помощью записи на StringWriter и проверки, что было написано там, утверждая, равенство writer.toString() с образцом. Не то, чтобы методы стали проще и проще.

На самом деле было бы очень хорошим упражнением, чтобы написать все, что нужно для тестирования, или даже сыграть ping-pong с собой.

Удачи и счастливого кодирования.

Смежные вопросы