assertRaise()中不处理例外情况

2024-10-04 05:20:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Pilgrim的python3单元测试章节中遇到了麻烦和困难。我在romantest2.py中运行了完全相同的代码。在示例中提供的代码中没有处理异常。我把书上的例子归纳成一个小片段:

测试用例1.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


Tags: to代码pyselfmaindef测试用例unittest