2013-02-28 18 views
2

我可以知道爲什麼測試失敗,即使函數實際拋出異常嗎?jython單元測試

def testDateCreation(self): 
    self.assertRaises(ValueError, datetime.date(2013, 2, 29)) 

回答

2

你要麼必須使用assertRaises作爲上下文管理器(如果正在運行的Python 2.7):

with self.assertRaises(ValueError): 
    datetime.date(2013, 2, 29) 

,或者提供一個功能,assertRaises可以撥打:

self.assertRaises(ValueError, lambda: datetime.date(2013, 2, 29)) 

否則,異常之前assertRaises被調用,因此無法處理。

+0

這兩種方法都有效。多謝你,多米尼克。你必須是一個蟒蛇冠軍。一旦我擁有足夠的聲譽,我會加倍努力。 – 2013-02-28 22:43:44

+0

很高興我能幫到你。還請[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)我的回答:-) – sloth 2013-03-01 07:10:46