Given:
def test_to_check_exception_is_thrown(self):
# Arrange
c = Class()
# Act and Assert
self.assertRaises(NameError, c.do_something)
If do_something
引发测试通过的异常。
但我有一个财产,当我更换时c.do_something
with c.name = "Name"
我收到有关未导入测试模块的错误,并且 Eclipse 突出显示了等号。
如何测试属性是否抛出异常?
Edit:
setattr
and getattr
对我来说是新的。他们确实在这件事上提供了帮助,谢谢。
自 Python 2.7 和 3.1 起assertRaises()
可以用作上下文管理器。看这里是Python 2 https://docs.python.org/2.7/library/unittest.html#unittest.TestCase.assertRaises and 这里是Python3 https://docs.python.org/3.6/library/unittest.html#unittest.TestCase.assertRaises.
所以你可以用以下方式编写你的测试with
像这样的指令:
def test_to_check_exception_is_thrown(self):
c = Class()
with self.assertRaises(NameError):
c.name = "Name"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)