django - Django TestCase 中的 client 和 client.Client 到底有什么区别?

标签 django testing

我阅读文档的理解是这样的:

  1. 客户端是测试用例的子类。当我们运行 manage.py test 时,会为每个以“test_”开头的方法创建一个 SimpleTest 类的实例(它继承自 TestCase)。这是自己
  2. Client 是 client 的子类。我们可以创建新的 Client 实例,有时这样做很有帮助。
  3. 然而不知何故,当我们输入 self.client 时,我们指的是在创建 TestCase 时实例化的特定客户端,不是客户端类TestCase 下面一层。

这是正确的吗?如果是这样,这是怎么回事 - 与父类(super class)有关?

最佳答案

如果我理解你的问题和 documentation正确。 client 属性的提供是为了方便,每个测试都可以访问 from django.test.client import Client Client 实例。

你的第一个问题:

  1. 客户端是测试用例的子类。当我们运行 manage.py test 时,我们的 SimpleTest 类(继承自 TestCase)的实例会为每个以“test_”开头的方法创建。这是自己。

来自 source看起来 Client 根本不是 TestCase 的子类。

class Client(RequestFactory):
    """
    A class that can act as a client for testing purposes.

我看不到来源在哪里? Client 类正在被实例化并附加到 TestCase 实例,但它在某处。

Django 是完全开源的,因此只要有一些空闲时间,就可以很容易地追踪事情发生的方式和地点。 https://github.com/django/django按照导入路径和 grepping 可以找到所有答案

关于django - Django TestCase 中的 client 和 client.Client 到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13242112/

相关文章:

python - 需要有关电子邮件错误的帮助

django - 如何覆盖 Django 管理员的 View ?

Spring 3.2.2 : MockMVC, 返回空结果

android - 模拟器测试与基于云的测试

php - 如何测试此类或将其重写为可测试的? php规范

selenium - 使用 selenium webdriver 预先记录的步骤进行性能/负载测试

django - 与 factory boy 和 pytest 一起使用的自定义 faker 提供程序

django - 干草堆:针对多个模型的一个searchIndex

python - "Cannot find installed version of python-django or python3-django"运行 celeryworker 时

testing - 如何使用 Maven 测试命令行应用程序?