> !=,python,unit-testing"/>

首页 > 解决方案 > 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'

标签: pythonunit-testing

解决方案


您需要调用rashka.fullname()else 来将方法与 str 进行比较。


推荐阅读