我有一种情况,我需要在功能测试类中为不同的情况加载不同的灯具
class Mytest(LiveServerTestCase):
fixtures = ['somefixture.json']
def test_some_test_method(self):
#load more fixtures for this test case
fixtures.extend(['some_other_fixture.json'])
django支持这个,我该怎么做呢?
答案 0 :(得分:0)
似乎你试图以一种不完全可取的方式使用灯具。
Fixtures只是为了拥有整个测试套件中通用的数据,而不是在类/测试用例级别。
当您尝试制作一个好的测试套件时,让您的测试彼此隔离是非常重要的。让测试改变彼此的数据,或者让测试依赖于另一个测试改变数据本质上是脆弱的。
您应该使用setUp()和tearDown()来处理类级数据操作,并在功能套件中使用正确的类隔离。
最重要的是,你还可以看一下tearDown()的用法,没有注释的用法是不同的:
@classmethod
def tearDownClass(cls):
答案 1 :(得分:0)
您倾向于为不同的测试加载不同的数据是好的。然而,与许多情况一样,灯具是完成此任务的原始和暴力工具。
相反,我建议您尝试工厂方法。通过为您正在使用的模型创建工厂,您可以在您的方案中获得多个胜利: