3
我寫了一個單元測試,它應該比較從我的方法返回的Column對象。我在測試中創建一個,然後從我的課程中獲得一個。我的測試代碼如下所示:如何正確比較兩個SQLAlchemy Column對象與Python的unittest?
def test_getting_correct_sa_object_from_column(self):
table = self.database.get_table_by_name('ESEventlogMain')
column = table.get_column_by_name('eventdata')
sa_column = sqlalchemy.Column('eventdata', sqlalchemy.Integer, primary_key=False)
self.assertEqual(sa_column, column.get_sa_object())
我的類的方法返回此:
def get_sa_object(self):
if self.type == 'int':
sa_type = sqlalchemy.Integer
elif self.type == 'varchar':
sa_type = sqlalchemy.String(self.length)
return sqlalchemy.Column(self.name, sa_type, primary_key=self.is_primary_key)
當我運行測試時,出現這樣的輸出:
Failure
Traceback (most recent call last):
File "C:\Users\tames.mctigue\PycharmProjects\db_setup_wizard\tests.py", line 107, in test_getting_correct_sa_object_from_column
self.assertEqual(sa_column, column.get_sa_object())
AssertionError: Column('eventdata', Integer(), table=None) != Column('eventdata', Integer(), table=None)
AssertionError顯示看起來像相同的數據,所以我堅持要尋找什麼。除了「assertEqual」之外,還有其他比較我應該使用嗎?
什麼是真的想在這裏測試?那些數據庫表存在並且它們具有您期望的名稱的列?這些列具有與預期相同的數據類型?還要別的嗎? – van
我實際上並沒有創建任何表格。現在我只想確保該方法返回正確類型的列。 – Tamerz