Код: Выделить всё
class TestSuite:
def test_verify_we_sent_data_somewhere(self):
api_url = "http://www.somebooksearch.biz/search"
payload = {"title": "An updated title", "isbn": 12345}
update_book(payload)
verify(requests).post(api_url, data=None, json=payload)
Код: Выделить всё
# Implementation:
def update_book(payload):
requests.post("http://www.somebooksearch.biz/search", json=payload)
verify(requests).post(api_url, json =payload, **kwargs)
Eockito.mockito.ArgumentError: obj '' не зарегистрирован
example_test.py:93: ArgumentError
< /blockquote>
Однако это странно, потому что у меня есть другой тестовый пример, в котором я имитирую запрос на получение, и он проходит нормально:
Код: Выделить всё
def test_mock_an_external_library_but_without_comments(self):
api_url = "http://www.somebooksearch.biz/search"
mock_response = mock({
"json": lambda: {"books": [{"title": "Some book title", "isbn": "123456"}]}
})
when(requests).get(api_url).thenReturn(mock_response)
actual = get_book_list()
assert actual == [{"title": "Some book title", "isbn": "123456"}]
Код: Выделить всё
# Implementation
def get_book_list():
response = requests.get("http://www.somebooksearch.biz/search")
data = response.json()
return data["books"]
Подробнее здесь: https://stackoverflow.com/questions/790 ... st-mockito