gpt4 book ai didi

Django 测试依赖于其他页面/行为

转载 作者:行者123 更新时间:2023-11-28 21:33:34 24 4
gpt4 key购买 nike

我已经开始为我的 Django 应用程序编写一些测试,但我不确定如何最好地构建代码。

假设我有一个注册页面和一个仅供登录用户使用的页面。我的第一个计划是让较早的方法执行注册,而较晚的方法使用该登录来测试页面:

def test_register_page(self):
//send request to register page and check user has been registered correctly
def test_restricted_page(self):
c = Client();
c.login("someUser","pass");
c.post("/someRestrictedPage/");
//Test response

然而,这意味着现在我的一个测试依赖于另一个。
我看到的替代方案是在 setUp() 中调用注册,但这仍然意味着受限页面测试依赖于注册页面的工作。

我可以尝试在设置中手动创建一个新用户,但我也不喜欢,因为这不是在测试系统创建的用户。

测试这种情况的常用模式是什么?

最佳答案

您正试图在一个测试用例中混合使用许多不同的功能。一个干净的设计应该有一个测试用例

  • 用于用户注册和
  • 一个是为了风景。

让它们相互依赖会在它们之间引入很多依赖关系——而且——如果测试失败,错误将更难调试。注册测试的成功应该通过正确创建用户实例来确定(因此检查用户的必要属性等)而不是通过能够在某个页面上登录来确定。因此,您需要为 View 测试用例设置一个“正确的”用户实例。这看起来可能比必要的要复杂一些,但它将使以后的维护变得容易得多。您尝试做的更像是集成测试,它测试整个系统,但在此之前您应该将系统拆分为功能单元 并对该单元进行单元测试!单个测试越小且定义明确,它们的维护和调试就越容易。

关于Django 测试依赖于其他页面/行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com