我似乎无法测试getopt异常。这里是一个非常简化的示例(主文件):
import sys, getopt
def main():
try:
options, _ = getopt.getopt(sys.argv[1:], 'h')
except getopt.GetoptError:
print("here I want to go")
if __name__ == '__main__':
main()
并且我要在其中引发GetoptError异常的测试文件在这里(测试文件:]]
import getopt, mock, main @mock.patch("getopt.getopt", mock.MagicMock(side_effect=getopt.GetoptError(''))) def main_test(): try: main.main() assert False except getopt.GetoptError: assert True
很遗憾,没有例外。测试返回:
@mock.patch("getopt.getopt", mock.MagicMock(side_effect=getopt.GetoptError(''))) def main_test(): try: main.main() > assert False E assert False main_test.py:7: AssertionError
有人可以指出我所缺少的吗?谢谢。
我似乎无法测试getopt异常。一个非常简化的示例在这里(主文件):import sys,getopt def main():try:options,_ = getopt.getopt(sys.argv [1:],'h')...
使用with pytest.raises
测试异常: