我正在尝试测试 __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)
运行这个给出:
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)
我怎样才能通过这个测试?
最佳答案
self.assertEqual("Dog named 'Fido'", repr(fido.get_self()))
或者只是
self.assertEqual("Dog named 'Fido'", repr(fido))
否则 assertEqual
会正确地告诉您字符串不等于对象。当它呈现错误消息时,它在对象上使用了 repr
,所以错误看起来有点困惑
关于python - 我如何使这个测试通过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262967/