python - Python unittest AssertionError> !=
问题描述
我今天开始单元测试,遇到了一个问题,我觉得这很明显,但也许你们会看到。这个块是保存信息的文件
names.py
class Person:
def __init__(self, firstname, lastname, middlename = ""):
self.firstname = firstname
self.lastname = lastname
self.middlename = middlename
def fullname(self):
if self.middlename:
return self.firstname + " " + self.middlename + " " + self.lastname
else:
return self.firstname + " " + self.lastname
这是测试应用程序
import unittest
from names import Person
class TestName(unittest.TestCase):
def test_fullname(self):
rashka = Person("John","Smith","James")
self.assertEqual(rashka.fullname, "John James Smith")
if __name__ == "__main__":
unittest.main()
当我运行它时出现此错误
AssertionError: <bound method Person.fullname
of <names.Person object at 0x0371A690>> != 'John James Smith'
解决方案
您需要调用rashka.fullname()
else 来将方法与 str 进行比较。