我的Django webapp使用oAuth2在Strava中进行身份验证。
我的网页中有一个链接向Strava发送请求,指示其他参数中的重定向网址。在此示例中,http://127.0.0.1:8000/token_exchange
Strava然后使用代码向该URL发出请求以交换访问令牌。我有一个观点,即在该网址中进行交换。
一切正常。
我的问题是我正在尝试构建自动化测试。但是当我启动测试时(使用python manage.py测试),服务器不会在端口8000中运行,而是在不同的端口中运行。
是否有最佳实践方法来管理该重定向网址,以便它在生产中具有生产域,但在运行测试时使用测试服务器地址?
感谢!!!
答案 0 :(得分:0)
单元测试的目标是隔离程序的每个部分,并显示各个部分是正确的。
https://en.wikipedia.org/wiki/Unit_testing#Advantages
如果您正在编写单元测试而不是复杂的集成测试,那么最好的做法就是嘲笑这种行为。
关于unittest.mock
库的Python文档有一个很棒的指南,介绍如何修补你在特定情况下未测试的所有行为:
https://docs.python.org/3/library/unittest.mock-examples.html
此外,您一定要查看responses
库,当您尝试测试依赖第三方服务的部件时,它非常有用:
https://github.com/getsentry/responses