테스트를 위해 클래스를 패치하는 데 문제가 있습니다. 저는 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