gpt4 book ai didi

python - 我如何使这个测试通过?

转载 作者:太空狗 更新时间:2023-10-30 02:48:35 26 4
gpt4 key购买 nike

我正在尝试测试 __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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com