2014-01-19 52 views
2

所以我有一些方法返回一些相當複雜的對象,我想測試這個輸出。我使用unittest構造了一個單元測試,並且我發現計算的對象和我構建的期望對象不相等。太糟糕了。assertEqual不打印不等於對象

儘管我得到了什麼,是錯誤消息不打印這兩個對象,只有一些平淡repr。每個對象定義了__str____eq__,並且我知道__str__,通過在__str__函數中放置raise ValueError進行驗證。

什麼給?

回答

1

Python中的很多地方使用對象的repr()而不是str(),因爲repr()通常指定一個確切的實例。

如果你想看到實際str()相反,許多assertWhatever方法允許自定義錯誤消息:

assertEqual(my_obj1, my_obj2, '%s != %s' % (my_obj1, my_obj2))