Django TestCase中客户端和客户端的区别究竟是什么?

时间:2012-11-05 23:31:31

标签: django testing

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

  1. client是TestCase的子类。当我们运行manage.py test时,会为每个启动'test_'的方法创建一个SimpleTest类的实例(继承自TestCase)。这是self
  2. 客户端是客户端的子类。我们可以创建新的客户端实例,有时这样做很有帮助。
  3. 然而,不知何故,当我们输入self.client时,我们所指的是在创建TestCase时实例化的特定客户端,而客户端类在TestCase下面一层。
  4. 这是对的吗?如果是这样,这是怎么回事 - 与Superclasses有关?

1 个答案:

答案 0 :(得分:1)

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

你的第一个问题:

  1. client是TestCase的子类。当我们运行manage.py test时,会为每个启动'test_'的方法创建一个SimpleTest类的实例(继承自TestCase)。这是自我。
  2. 来自source

    看起来客户端根本不是TestCase的子类。

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

    从源头上我看不到哪里?正在实例化Client类并将其附加到TestCase实例,但它在某处。

    Django是完全开源的,因此在一些空闲时间内,很容易找到事情和事情发生的方式。 https://github.com/django/django按照导入路径和周围的搜索可以找到所有答案