【发布时间】:2009-08-04 23:51:42
【问题描述】:
我有代码,当 assertRaises 失败时,assertRaises 会抛出异常。我认为如果 assertRaises 失败,那么测试就会失败,最后我会得到一份报告说测试失败。我没想到会抛出异常。下面是我的代码。我做错了什么?我正在使用 Python 2.6.2。
import unittest
class myClass:
def getName(self):
raise myExcOne, "my exception one"
#raise myExcTwo, "my exception two"
#return "a"
class myExcOne(Exception):
"exception one"
class myExcTwo(Exception):
"exception two"
class test_myClass(unittest.TestCase):
def setUp(self):
self.myClass = myClass()
def testgetNameEmpty(self):
#self.assertRaises(myExcOne,self.myClass.getName)
#self.assertRaises(myExcTwo,self.myClass.getName)
try:
self.assertRaises(myExcTwo,self.myClass.getName)
except Exception as e:
pass
if __name__ == "__main__":
#unittest.main()
suite = unittest.TestLoader().loadTestsFromTestCase(test_myClass)
unittest.TextTestRunner(verbosity=2).run(suite)
【问题讨论】:
-
您所说的“断言失败”具体是什么意思?您可以发布堆栈跟踪或错误消息吗?
-
我重新阅读文档并在 assertRaises 失败时抛出异常是预期的行为。我误解了该工具的工作原理。我忘了在上一篇文章中提到这一点。如果我发现异常,报告会告诉我测试通过了,即使它没有。我已经更新了我的代码
标签: python unit-testing python-unittest