我对'self'的理解是,它意味着类似“包含此方法的类的实例”。因此,当默认的django测试读取:
class SimpleTest(TestCase):
def test_basic_addition(self):
我们在某种意义上将test_basic_addition传递给SimpleTest的一个实例,在某些时候,已经应用了setUp方法中定义的动作(如果有的话)。据推测manage.py test
以某种方式创建了这个实例,但我真的不明白它是什么!这里到底发生了什么?
答案 0 :(得分:3)
实际上,测试运行器会为您创建的每个测试方法创建测试类的实例(SimpleTest
)。 self
指的是那个实例。
TestCase
的每个实例都将运行一个测试方法:名为methodName
的方法。
这意味着您可以在测试类上使用其他“帮助”方法,并使用self.name_of_helper_method()
调用这些方法。
您通常不必担心unittest
框架如何加载和运行测试,但unittest
documentation可以更详细地解释这一点。