我在爲測試修補類時遇到問題。我正在嘗試修補屬於Scrapy的東西 - HtmlXpathSelector課程。如何使用模擬庫修補Python類
下面是一些代碼:
from scrapy.selector import HtmlXPathSelector
from mock import MagicMock, patch
with patch('scrapy.selector.HtmlXPathSelector') as MockHtml:
instance = MockHtml.return_value
instance.method.return_value = 'foo'
example = HtmlXPathSelector()
print type(example)
assert example is instance
assert example.method == 'foo'
結果是:
<class 'scrapy.selector.lxmlsel.HtmlXPathSelector'>
Traceback (most recent call last):
File "<stdin>", line 6, in <module>
AssertionError
>>>
這個例子是一樣的一個在素庫教程近了。任何想法爲什麼它不工作?
啊!這就是我想要的......我現在明白了,這種方法回答了我在內德答案中的評論。謝謝! – Edwardr
鏈接到momemnt的補丁返回503. – Drachenfels
@Drachenfels謝謝,將鏈接改爲指向readthedocs,應該更穩定。 – schlamar