1、Unittest中异常捕获——assertRaises:
import unittest
def div(a,b):
return a/b
class Myfirstunittest(unittest.TestCase):
def setUp(self):
print 'star'
def tearDown(self):
print 'end'
def test_testcase(self):
self.assertEquals(div(1,1),1/1)
def test_testcase2(self):
print '3/0'
self.assertRaises(ZeroDivisionError,div,3,0) #执行代码运行到div这个方法时,如果a参数是3,b参数是0时,就是抛出异常
if __name__ == '__main__':
unittest.main()
2、pytest异常捕获:
对于异常断言,可以使用上下文管理器 pytest.raises:
def test_zero_division():
with pytest.raises(ZeroDivisionError):
1 / 0
# 还可以捕获异常信息
def test_zero_division():
with pytest.raises(ZeroDivisionError) as e:
1 / 0
assert str(e.value) == 'integer division or modulo by zero'