0
我想爲共享的一組測試製作一個mixin。我希望能夠隨時從mixin中繼承這些通用測試。Py.test mixin類不能訪問`self`
下面是我的一些混入的:
class CommonRuleWhenTestsMixin(TestCase):
def test_returns_false_if_rule_inactive(self):
self.rule.active = False
assert not self.rule.when(self.sim)
這是當我使用的mixin:
class TestWhen(CommonRuleWhenTestsMixin):
def setUp(self):
self.customer = mommy.make(Customer)
self.rule = mommy.make(
UsageRule,
customer=self.customer,
max_recharges_per_month=2
)
self.sim = mommy.make(
Sim,
msisdn='0821234567',
customer=self.customer
)
assert self.rule.when(self.sim)
def test_returns_false_if_airtime_max_recharges_exceeded(self):
self.rule.recharge_type = AIRTIME
mommy.make(
SimRechargeHistory,
sim=self.sim,
product_type=AIRTIME,
_quantity=3
)
assert not self.rule.when(self.sim)
我不斷收到這樣的信息:
_________ CommonRuleWhenTestsMixin.test_returns_false_if_rule_inactive _________
simcontrol/rules/tests/test_models.py:14: in test_returns_false_if_rule_inactive
self.rule.active = False
E AttributeError: 'CommonRuleWhenTestsMixin' object has no attribute 'rule'
如何將我的mixin通過子類訪問self
上設置的變量?
TestCase這裏是unittest中的一個嗎?你確定'setUp'正在運行嗎? –
是的,是的,因爲我在設置中聲稱False檢查 – Lee