【发布时间】:2018-03-31 01:44:33
【问题描述】:
我有一个模型:
class Order(models.Model):
STATUS_CHOICES = (
(100, 'First'),
(200, 'Second'),
)
status = models.IntegerField('Status', choices=STATUS_CHOICES)
def accept(self):
self.status = 200
self.save()
return self.status, self.get_status_display()
我有一个单元测试:
class CustomTestCase(TestCase):
@classmethod
def setUp(self):
pass
@classmethod
def save(self):
pass
class OrderTest(CustomTestCase):
def test_accept(self):
result = Order.accept(self)
expected = (200, 'Second')
self.assertEqual(expected, result)
如您所见,我添加了什么都不做的“保存”功能,原因是没有自定义的“保存”功能,我不断收到此错误:
[OrderTest] 对象没有属性 [save]
如果该自定义“保存”功能有更好的解决方案,请告诉我。但是这种解决方案不适用于 django 内置的 'get_status_display()' 函数。如果没有解决方案,我会一直遇到这个问题:
[OrderTest] 对象没有属性 [get_status_display]
我可以做些什么来根据需要完成这项工作?
【问题讨论】:
-
应该将self传递给accept函数吗? Oder.accept() ?
-
在这种情况下,我得到:“TypeError: accept() missing 1 required positional argument: 'self'”
标签: python django unit-testing