Python 如何在Django测试用例中使用正确的oAuth2重定向url?

Python 如何在Django测试用例中使用正确的oAuth2重定向url?,python,django,testing,automated-tests,Python,Django,Testing,Automated Tests,我的Django webapp使用oAuth2在Strava中获得身份验证 我的网页中有一个链接,它向Strava发送一个请求,指示重定向url和其他参数。在本例中 然后,Strava使用代码向该url发出请求,以交换访问令牌。我有一个视图可以在该url中进行这种交换 一切正常 我的问题是,我正在尝试构建一个自动化测试。但是,当我启动测试(使用python manage.py测试)时,服务器不是在端口8000中运行,而是在另一个端口中运行 是否有最佳实践方法来管理重定向url,使其在生产中具有生

我的Django webapp使用oAuth2在Strava中获得身份验证

  • 我的网页中有一个链接,它向Strava发送一个请求,指示重定向url和其他参数。在本例中

  • 然后,Strava使用代码向该url发出请求,以交换访问令牌。我有一个视图可以在该url中进行这种交换

  • 一切正常

    我的问题是,我正在尝试构建一个自动化测试。但是,当我启动测试(使用python manage.py测试)时,服务器不是在端口8000中运行,而是在另一个端口中运行

    是否有最佳实践方法来管理重定向url,使其在生产中具有生产域,但在运行测试时使用测试服务器地址

    谢谢

    单元测试的目标是隔离程序的每个部分,并证明各个部分是正确的

    如果您编写的是单元测试而不是复杂的集成测试,那么最好的做法就是模仿这种行为

    Python文档中有一个关于
    unittest.mock
    库的精彩指南,介绍如何在特定情况下对未测试的所有行为进行修补:

    此外,您应该明确地查看
    响应
    库,它在您尝试测试依赖第三方服务的部件时非常有用:

    非常感谢您的建议!在这种情况下,我指的是功能测试。我正在尝试为一个用户测试一个完整的故事,该用户访问我的应用程序,选择将其链接到Strava等。在这种情况下,模仿是否也是正确的解决方案,或者是否有其他适用于这些情况的好做法?@AlvaroAguilar yep,这是正确的。为了确保第三方服务以您期望的方式响应,您应该使用项目监控系统的功能。更多信息请参阅这篇文章: