我有一組測試用例,都應該完成相同的測試,沿着「方法x返回現有文件的名稱?」的行。如何將測試方法添加到一組Django TestCase派生類?
我認爲最好的方法是從TestCase派生出來的基類,它們都共享,並且簡單地將測試添加到該類中。不幸的是,測試框架仍然試圖對基類進行測試,但沒有任何意義。
class SharedTest(TestCase):
def x(self):
...do test...
class OneTestCase(SharedTest):
...my tests are performed, and 'SharedTest.x()'...
我想在一個檢查,以破解簡單地跳過測試,如果它被稱爲基類對象上,而不是派生類是這樣的:
class SharedTest(TestCase):
def x(self):
if type(self) != type(SharedTest()):
...do test...
else:
pass
,但得到這個錯誤:
ValueError: no such test method in <class 'tests.SharedTest'>: runTest
首先,我想要這樣做的任何優雅的建議。其次,雖然我不想使用type()入侵,但我想了解爲什麼它不起作用。
@jivanamara:有一種方法可以避免超類測試方法被計數_and_在沒有'if getattr(...)'檢查的情況下編寫測試方法。看到我的答案的第二個更新。 – 2010-09-01 15:45:57