1

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

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

它是否正确?如果是这样,这是怎么回事 - 与超类有关?

4

1 回答 1

1

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

你的第一个问题:

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

源头看起来 Client 根本不是 TestCase 的子类。

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

从源头我看不到哪里?Client 类正在被实例化并附加到 TestCase 实例,但它在某个地方。

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

于 2012-11-06T00:07:40.803 回答