我正在学习 django-pytest ,我正在尝试测试unicode,但是收到了错误
我的模特
class Post(models.Model):
body = models.TextField()
value = models.CharField(max_length=5)
def __unicode__(self):
return self.body
测试
class TestPost:
def test_model(self):
obj = mixer.blend('birdie.Post')
assert obj.pk == 1, 'should create a post instance '
def test_uniccode(self):
obj = mixer.blend('birdie.Post',body='hello')
result = obj.__unicode__
assert result == 'hello', 'should return body unicode
我在测试unicode时遇到了困难,我只是做了100%的覆盖率
通过测试非常感谢任何帮助。提前致谢
答案 0 :(得分:2)
object = obj
result = object.__unicode__()
答案 1 :(得分:1)
当然,我不明白为什么你不接受(1个月前被接受)我的回答。它帮助了你。很清楚。也许,你接受了你朋友的回答。好吧,祝你好运。
你必须致电
obj.__unicode__()
它应该可以正常工作。
这是一种方法,所以称之为方法。不要忘记括号。
class Group(models.Model):
name = models.TextField()
def __unicode__(self):
return self.name
obj = Group(name='test')
obj.save()
obj.__unicode__
<bound method Group.__unicode__ of <Group: test>>
obj.__unicode__()
u'test'
答案 2 :(得分:1)
result = unicode(obj)
result == u'hello'