Я читал несколько раз, что нужно использовать mock
, чтобы имитировать внешние вызовы, и не должно быть никаких вызовов, сделанных для любой внешней службы, потому что ваши тесты должны выполняться независимо от внешних служб.Python/Django unittest, как обращаться с внешними вызовами?
Это полностью имеет смысл .... НО
насчет внешних услуг изменяющимися? Какой хороший тест, проверка того, что мой код работает так, как если бы я никогда не узнал, когда он сломается из-за изменения внешней службы/обновления/удаления/устаревания/etc ...
Как это можно смириться? Псевдокод ниже
function post_tweet:
data = {"tweet":"tweetcontent"}
send request to twitter
receive response
return response
Если я издеваться этого нет никакого способа, я буду уведомлен, что щебет изменил свой API, и теперь я должен обновить мой тест ...
Дальнейшее предложение: ** mock ** внешние вызовы twitter для вашего ** unit test **, чтобы проверить ваш код. Затем используйте ** Интеграционные тесты **, в которых вы фактически назовете услугу Twitter, и этот тип теста позволит вам узнать, изменилось ли сервис Twitter. –