2

私はdjango-pytestを学んでいて、ユニコードをテストしようとしていましたが、エラーが発生していました

私のモデル

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 に答える