我将OAuth集成到了我的Django应用程序中。OAuth有两个步骤:
1.重定向到OAuth提供商域名
1.使用令牌回调Django APP
我想为上面的流实现TestCase单元。以下是我为测试步骤1编写的内容:
def test_connect_with_oauth_provider(self):
"""Test connecting with OAuth provider."""
url = signin_url("oauth-provider")
res = self.client.get(url)
self.assertEqual(res.status_code, status.HTTP_200_OK)
但是,测试使用的是测试用例域,而不是我的真实域,因此测试失败。您能帮我实现这两个步骤的测试吗?谢谢!
1条答案
按热度按时间kxkpmulp1#
在这种情况下,我建议使用python原生
unittest.mock
库。使用模拟库允许您创建函数或提供仅在测试中使用的假值。最近,我写了一篇关于使用模拟的博客文章(正确!无耻的自我推销),但我也声明了mock有一些警告。如果您愿意,您也可以使用official documentation。
因为你的测试是在你的帖子中给出的,我不知道除了使用
unittest.mock
还有其他方法。但是,请注意,此库可能会引起混淆,因为它可能会有一些违反直觉的行为。我建议您在真正的单元测试中测试重定向(您提供的用例更像是一个集成测试),方法是测试执行此工作的单个函数。