assertRaise()中不处理异常

时间:2014-03-15 18:27:29

标签: python unit-testing python-3.x

我在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版本

1 个答案:

答案 0 :(得分:1)

您断言to_roman()函数引发异常。 该测试成功,您的功能确实引发了异常。