【发布时间】:2020-08-10 13:14:43
【问题描述】:
我正在尝试在我的单元测试中测试一个方法是否有效。正如我的错误中的以下代码所示,我正在尝试将我的 Home 对象与我的 String 对象进行比较,并且在打印出它们时,它们肯定是彼此相等的。我的问题是如何将我的 Home 对象更改为 String 对象或将我的 String 对象更改为 Home 对象,以便测试通过。此外,如果它有助于这也是内存数据库测试。谢谢!
单元测试代码
from unittest import TestCase
from main import ContactApp
from database import CombinedDatabase, Home, Person, Location, Contact
class TestContactApp(TestCase):
def test_commit_data(self):
url = CombinedDatabase.construct_in_memory_url()
contact_database = CombinedDatabase(url)
contact_database.ensure_tables_exist()
session = contact_database.create_session()
home_address = Home(address='3069 U St.')
patient1 = Person(patient_name='Mike Piazza')
ContactApp.commit_data(session, str(patient1), str(home_address), '456324A', 96.4, 'USA', 'Nebraska', 'Omaha', '54229')
actual = session.query(Home).one()
actual2 = session.query(Person).one()
print(home_address, actual.address)
self.assertEqual(home_address, actual.address)
self.assertEqual(patient1, actual2.patient_name)
错误
<database.Home object at 0x7fe4ae20ce48> <database.Home object at 0x7fe4ae20ce48>
#printed out objects
<database.Home object at 0x7fe4ae20ce48> != <database.Home object at 0x7fe4ae20ce48>
<database.Home object at 0x7fe4ae20ce48>
<database.Home object at 0x7fe4ae20ce48>
<Click to see difference>
Traceback (most recent call last):
File "/home/cse/Pycharmedu2019.1.1/pycharm-edu-2019.1.1/helpers/pycharm/teamcity/diff_tools.py", line 32, in _patched_equals
old(self, first, second, msg)
File "/usr/lib64/python3.6/unittest/case.py", line 829, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/lib64/python3.6/unittest/case.py", line 822, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: <database.Home object at 0x7fe4ae20ce48> != '<database.Home object at 0x7fe4ae20ce48>'
【问题讨论】:
标签: python unit-testing in-memory-database