如何测试django模型方法__str __()

时间:2015-03-16 13:02:40

标签: python django testing django-models

我试图测试__str__方法,当我尝试在我的测试中访问它时它返回我的模型实例(我认为是)

def test_str_is_equal_to_title(self):
    """
    Method `__str__` should be equal to field `title`
    """
    work = Work.objects.get(pk=1)
    self.assertEqual(work.__str__, work.title)

从测试中我得到:

AssertionError: '<bound method Work.__str__ of <Work: Test title>>' != 'Test title'

我应该如何比较这两个值来通过测试?

2 个答案:

答案 0 :(得分:14)

根据documentation

  

Model.__str__()

     

每当您致电时,都会调用__str__()方法   str()对象。

您需要在模型实例上调用 str()

self.assertEqual(str(work), work.title)

答案 1 :(得分:1)

或者,您可以简单地称之为:

model_instance.__str__()