【发布时间】:2017-02-16 00:31:16
【问题描述】:
我是 python 新手。我想测试我的代码是否引发异常。我从这里得到代码:How do you test that a Python function throws an exception?
import mymod
import unittest
class MyTestCase(unittest.TestCase):
def test1(self):
self.assertRaises(SomeCoolException, mymod.myfunc, compulsory_argument)
现在,如果没有抛出异常,我还想显示一条消息。我怎么做 ? python 文档没有清楚地提到它。我在“compulsory_argument”之后添加了消息,但它失败了。
编辑:我尝试了第一个答案并进行了修改,但遇到了异常。我的错误是什么?
import unittest
def sayHelloTo(name):
print("Hello " + name)
class MyTestCase(unittest.TestCase):
def test1(self):
person = "John"
with self.assertRaises(Exception, "My insightful message"):
sayHelloTo(person)
错误:
Error
Traceback (most recent call last):
File "C:\tests\tester.py", line 9, in test1
with self.assertRaises(Exception, "My insightful message"):
AttributeError: __exit__
【问题讨论】:
-
raise将通过异常,print将打印一条消息。结合这两者以获得您想要的行为。
标签: python unit-testing exception