14.3.1 我们编写一个能够快速检测异常情况的单元测试
- 可以使用assertRaise方法,例如,如果想检查某个函数是否引发了ValueError异常,可以使用以下方法完成
import unittest
def parse_int(s):
return int(s)
class TestConversion(unittest.TestCase):
def test_bad_int(self):
self.assertRaises(ValueError,parse_int,'N/A')
- 如果需要以某种方式检查异常的值,可以使用另一种方法
import errno
class TestIO(unittest.TestCase):
def test_file_not_found(self):
try:
f = open("path/to/file")
except IOError as e:
self.assertEqual(e.errno,errno.ENOENT)
else:
self.fail("IOError not raise")
- assertRaise 方法提供了一种边界的方法来测试是否有异常出现
- 我们日常编写代码时的一个常见误区就是手工使用try except来处理异常
- 这种方法的问题在于容易忘记边界的情况,比如根本就没有产生异常。为了应对这一点
- 我们要增加assertRaise方法,它会帮我们处理细节,尽量要多使用
网友评论