如果一个函数没有抛出预期的异常,那么如何编写一个单元测试失败?
我有一个如下的小代码,请帮助我以正确的方式写这个.我想检查ID是否存在value,如果不存在则会引发异常.
value = ({'av' : '123', 'user' : 'abc', 'version' : 'xyz'})
with self.assertRaises(IndexError, value[0]["ID"]):
print "not an error"
Run Code Online (Sandbox Code Playgroud) 我是python的新手。我想测试我的代码是否抛出异常。我从这里得到了代码:你如何测试 Python 函数抛出异常?
import mymod
import unittest
class MyTestCase(unittest.TestCase):
def test1(self):
self.assertRaises(SomeCoolException, mymod.myfunc, compulsory_argument)
Run Code Online (Sandbox Code Playgroud)
现在,如果没有抛出异常,我还想显示一条消息。我怎么做 ?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)
Run Code Online (Sandbox Code Playgroud)
错误:
Error
Traceback (most recent call last):
File "C:\tests\tester.py", line 9, in test1
with self.assertRaises(Exception, "My insightful message"):
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud)