2010-03-01 47 views
4

我正在爲特定類中的方法列表運行assertEqual測試用例。這些方法從字符串形式擴展到使用getattr()可調用的東西。如何在Python單元測試中獲取失敗案例的參數?

如何獲得unittest來告訴我失敗的特定方法?意思是:我怎樣才能得到unittest來打印stdout導致assert失敗的特定參數?

任何建議非常感謝。

感謝

回答

5

您可以通過assertEqual便第三個參數(如果算上自技術上第四),這是錯誤消息將返回。所以下面應該做或多或少你要找的東西:

class MethodTest(TestCase): 
    def test_method(self): 
     obj = MyClass() 
     for method in "frob", "defrob", "refrob": 
      self.assertEqual(getattr(obj, method)(), 42, "obj.%s() is not equal to 42" % method) 
+0

賓果!謝謝jcd。 – chris 2010-03-02 17:40:36