测试初始化​​程序中是否引发了异常

时间:2018-08-03 09:33:05

标签: python unit-testing testing

测试在初始化对象时会引发异常的方案的正确方法是什么?使用指定的代码段:

 def __init__(self, snmp_node: str = "0", config_file_name: str = 'config.ini'):
 [...]
 self.config_file_name = config_file_name
        try:
            self.config_parser.read(self.config_file_name)
            if len(self.config_parser.sections()) == 0:
                raise FileNotFoundError
        except FileNotFoundError:
            msg = "Error msg"
            return msg

我尝试了以下测试:

self.assertTrue("Error msg", MyObj("0", 'nonExistingIniFile.ini')

但是我遇到了一个AssertionError,提示 init 可能不返回str。

处理这种情况的正确方法是什么?也许有其他解决方法:我只想确保如果用户传递了错误的.ini文件,该程序将不会接受。

1 个答案:

答案 0 :(得分:0)

需要

init 返回无。我认为您正在寻找self.assertRaises

with self.assertRaises(FileNotFoundError):
     MyObj("0", 'nonExistingIniFile.ini')