使用 unittest
模块,如何测试打开文件时引发的 FileNotFoundError
,如下所示:
func(filename):
try:
file = open(filename)
except FileNotFoundError:
exit()
单元测试模块
class TestFunc(unittest.TestCase):
def test_func(self):
self.assertRaises(FileNotFoundError, func, "no_exist.txt")
结果错误
AssertionError: FileNotFoundError not raised by func
最佳答案
您正在异常处理程序中吞噬异常,因此您的调用代码(单元测试)无法知道已引发错误,它所看到的只是您的代码已经运行并退出。
考虑再次加注:
func(filename):
try:
file = open(filename)
except FileNotFoundError:
# Whatever else you want to do
raise
更好的是,您的单元测试不应该真正依赖于不存在的文件 - 单元测试应该根据定义自包含。考虑模拟 open 方法,以便您拥有更多控制权。
关于python - 如何正确地对 FileNotFoundError 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51986259/