我想在一個網絡爬蟲上設置單元測試,並且對我如何測試它們感到困惑。 (我只是做單元測試一次,它是在一個計算器程序。)JUnit測試HTML解析
以下是方案二實例方法:
protected static void HttpURLConnection(String URL) throws IOException {
try {
URL pageURL = new URL(URL);
HttpURLConnection connection = (HttpURLConnection) pageURL
.openConnection();
stCode = connection.getResponseCode();
System.out.println("HTTP Status code: " + stCode);
// append to CVS string
CvsString.append(stCode);
CvsString.append("\n");
// retrieve URL
siteURL = connection.getURL();
System.out.println(siteURL + " = URL");
CvsString.append(siteURL);
CvsString.append(",");
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
和:
public static void HtmlParse(String line) throws IOException {
// create new string reader object
aReader = new StringReader(line);
// create HTML parser object
HTMLEditorKit.Parser parser = new ParserDelegator();
// parse A anchor tags whilst handling start tag
parser.parse(aReader, new HTMLEditorKit.ParserCallback() {
// method to handle start tags
public void handleStartTag(HTML.Tag t, MutableAttributeSet a,
int pos) {
// check if A tag
if (t == HTML.Tag.A) {
Object link = a.getAttribute(HTML.Attribute.HREF);
if (link != null) {
links.add(String.valueOf(link));
// cast to string and pass to methods to get title,
// status
String pageURL = link.toString();
try {
parsePage(pageURL); // Title - To print URL, HTML
// page title, and HTTP status
HttpURLConnection(pageURL); // Status
// pause for half a second between pages
Thread.sleep(500);
} catch (IOException e) {
e.printStackTrace();
} catch (BadLocationException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}, true);
aReader.close();
}
我已經建立一個測試類的Eclipse和有輪廓的測試方法沿着這些線路:
@Test
public void testHttpURLConnection() throws IOException {
classToTest.HttpURLConnection(?);
assertEquals("Result", ? ?)
}
我真的不知道WH可以從這裏出發。我甚至不確定我是應該測試實時URL還是本地文件。 我在這裏發現這個問題:https://stackoverflow.com/questions/5555024/junit-testing-httpurlconnection 但我不能真的按照它,我不知道它被解決無論如何。 任何指針讚賞。
謝謝 - 我要檢查那本食譜。 – Robert 2012-07-16 12:33:47