如何让这个测试通过?

hhb*_*lly 4 python unit-testing

我正在尝试测试返回类型__repr__.它不是一个字符串,它是什么?这里发生了什么事?

import unittest
class MyClass(unittest.TestCase):
    class Dog(object):
            def __init__(self, initial_name):
                self._name = initial_name

            def get_self(self):
                return self

            def __repr__(self):
                return "Dog named '" + self._name + "'"

    def runTest(self):
        fido = self.Dog("Fido")
        self.assertEqual("Dog named 'Fido'", fido.get_self()) #Fails!

test=MyClass("runTest")
runner=unittest.TextTestRunner()
runner.run(test)
Run Code Online (Sandbox Code Playgroud)

运行这个给出:

FAIL: runTest (__main__.MyClass)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "/home/xxxxx/fido.py", line 15, in runTest
     self.assertEqual("Dog named 'Fido'", fido.get_self())
   AssertionError: "Dog named 'Fido'" != Dog named 'Fido'

 ----------------------------------------------------------------------
 Ran 1 test in 0.006s

 FAILED (failures=1)
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过这项测试?

Joh*_*ooy 5

self.assertEqual("Dog named 'Fido'", repr(fido.get_self()))
Run Code Online (Sandbox Code Playgroud)

要不就

self.assertEqual("Dog named 'Fido'", repr(fido))
Run Code Online (Sandbox Code Playgroud)

否则assertEqual正确告诉您该字符串不等于该对象.当它呈现它repr在对象上使用的错误消息时,错误看起来有点令人困惑