我在Pilgrim潜入python 3单元测试章节时遇到了麻烦和困难。我在romantest2.py中运行完全相同的代码。在示例中提供的代码中没有处理异常。我已将本书中的示例推断为一个较小的片段:
TestCase1.py
import unittest
class ToRomanBadInput(unittest.TestCase):
def test_too_large(self):
'''to_roman should fail with large input'''
self.assertRaises(roman2.OutOfRangeError,roman2.to_roman,4000)
if __name__ == '__main__':
unittest.main()
文件roman2.py
class OutOfRangeError(ValueError):
pass
def to_roman(n):
raise OutOfRangeError("Value n {0} is larger than 3999.".format(n))
我似乎无法继续这一部分。发生的事情是我希望测试用例失败。 但事实并没有显示出来:
..
------------------------------------------------------------
Ran 2 tests in 0.000s
OK
我在Eclipse中使用并运行此代码PyDev,而python的版本是3.3.3版本
答案 0 :(得分:1)
您断言to_roman()
函数引发异常。 该测试成功,您的功能确实引发了异常。