当我在Django中创建一个测试方法时,究竟是什么'self'指的是什么?

时间:2012-11-03 14:28:27

标签: python django unit-testing self

我对'self'的理解是,它意味着类似“包含此方法的类的实例”。因此,当默认的django测试读取:

class SimpleTest(TestCase):
    def test_basic_addition(self):

我们在某种意义上将test_basic_addition传递给SimpleTest的一个实例,在某些时候,已经应用了setUp方法中定义的动作(如果有的话)。据推测manage.py test以某种方式创建了这个实例,但我真的不明白它是什么!这里到底发生了什么?

1 个答案:

答案 0 :(得分:3)

实际上,测试运行器会为您创建的每个测试方法创建测试类的实例(SimpleTest)。 self指的是那个实例。

来自unittest documentation

  

TestCase的每个实例都将运行一个测试方法:名为methodName的方法。

这意味着您可以在测试类上使用其他“帮助”方法,并使用self.name_of_helper_method()调用这些方法。

您通常不必担心unittest框架如何加载和运行测试,但unittest documentation可以更详细地解释这一点。