我试图测试__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'
我应该如何比较这两个值来通过测试?
答案 0 :(得分:14)
Model.__str__()
每当您致电时,都会调用
__str__()
方法str()
对象。
您需要在模型实例上调用 str()
:
self.assertEqual(str(work), work.title)
答案 1 :(得分:1)
或者,您可以简单地称之为:
model_instance.__str__()