2013-02-22 60 views
0

我用Python編寫小應用程序和一個模塊負責下載和解析使用Beautiful Soup解析和urllib2的主頁下載網頁。的Python - 單元測試類,從HTML頁面中提取數據

我想知道現在,我該如何編寫負責解析頁面的類的單元測試。

我可以創建一個圍繞urllib2一些抽象,並將它注入到負責解析類(我的計劃是有不同的網頁不同的類),並在測試過程中我會注入一個對象,會嘲笑這種抽象。但我不太確定這種方式。我只會創建一個抽象,因爲編寫測試會更容易,而不是因爲需要抽象(至少這是我現在所想的)。

另外我會有一個問題如何測試這種抽象,它將需要互聯網連接正常工作,當我將運行測試我怎麼能斷言適當的頁面被下載?

回答

1

爲了實現在Python單元測試,你應該考慮使用嘲弄和補丁: http://www.voidspace.org.uk/python/mock/

+0

我知道嘲笑,我甚至在我的文章中提到它。我的問題是我不知道如何正確測試我的類,它使用'urllib2'中的函數'urlopen'來下載頁面。即使我在頁面下載時創建了一個抽象,但仍然有一個測試這個抽象的例子,我們又遇到了同樣的問題。 – Andna 2013-02-22 21:35:08

+0

我不確定我是否明白你的觀點。你不需要自己創建抽象來模擬'urlopen',你可以使用補丁修飾器。 – Jean 2013-02-22 21:40:20

+0

好的,我讀了關於這個補丁裝飾器,它的工作,謝謝。 – Andna 2013-02-22 22:09:09