我有一個 Django TestCase,我想為兩組不同的資料(在這種情況下,顏色可以是紅色或藍色的 Bike 物件)運行所有測驗。
無論是通過加載不同的燈具,還是相同的燈具并操縱顏色,我都沒有偏好。
見下面的例子:
class TestBike(TestCase):
fixtures = [
"testfiles/data/blue_bike.json",
]
def setUp(self, *args, **kwargs):
self.bike = Bike.objects.get(color="blue")
run_expensive_commands(self.bike)
def test_bike_1(self):
# one of many tests
def test_bike_2(self):
# second of many tests
我考慮的一種方法是使用該parameterized包,但隨后我必須進行parameterize每個測驗,并prepare()從每個測驗中呼叫一個函式。聽起來像是一大堆冗余。
另一種方法是使用不同的夾具多重繼承測驗。也有點過于冗長,我不喜歡。
uj5u.com熱心網友回復:
您是否考慮在類級別進行引數化,即通過類屬性?
class TestBikeBase:
COLOR = "" # Override in derived class.
def setUp(self, *args, **kwargs):
self.bike = Bike.objects.get(color=self.COLOR)
run_expensive_commands(self.bike)
def test_bike_1(self):
# one of many tests
def test_bike_2(self):
# second of many tests
class TestRedBike(TestBikeBase, TestCase):
COLOR = "red"
class TestBlueBike(TestBikeBase, TestCase):
COLOR = "blue"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/385290.html
