在 Go 中测试 os.Exit 场景
在编写涉及使用 os.Exit() 调用退出程序的函数的测试时,它有必要隔离它们对测试套件其余部分的影响。为了应对这一挑战,我们可以利用以下受 Go 团队核心成员 Andrew Gerrand 演讲启发的方法。
给定一个通过 os.Exit() 终止程序的函数:
1 2 3 4 5 6 7 8 9 10 11 |
|
创建相应的测试用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
此测试用例在单独的进程中重新调用 go test,将 TestCrasher 的执行与套件的其余部分隔离。它还设置一个环境变量 (BE_CRASHER=1),调用的进程会检查该环境变量,如果存在,则调用被测试的函数。因此,我们避免无限循环并确保验证正确的退出代码。
以上是如何在 Go 中测试调用 os.Exit() 的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!