2

我正在学习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% 的覆盖率

错误 在此处输入图像描述

非常感谢您通过测试提供的任何帮助。提前致谢

4

3 回答 3

4
object = obj
result = object.__unicode__()
于 2016-07-26T12:14:09.433 回答
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'
于 2016-06-23T13:24:39.943 回答
1
result = unicode(obj)
result == u'hello'
于 2016-06-23T13:44:12.503 回答