我似乎无法测试 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
谁能指出我错过了什么?谢谢你。