相关文章推荐
小百科
›
记一个由 Surge 更新发现的 Bug - Yiming Chen
surge
curl
刚分手的卤蛋
5 月前
为了不在测试环境中使用
curl
对外部环境发起请求,之前在写这个测试时将
curl
用一个私有函数
downloader/2
包装了一下,并当作公共函数的依赖注入进去,在测试时则注入一个构造好的
failure_downloader/2
Stub 失败时的行为。
而同事在写 Stub 部分时忘记了将
failure_downloader/2
注入进去了,即在测试时依然会正常发起
curl
请求。
同事又按照测试环境下
curl
对
example.org
的请求返回,写了
assertion
。因此这个测试在 CI 和其他同事的机器上都能正常通过。
而 Surge 在某一次更新后,对
example.org
的处理与正常情况下并不一致,导致了这个测试在我的机器上正常了一段时间后失败。
种种巧合导致了这个问题,我觉得也算一件趣事。 P.S. 最后,我又好奇问同事这个 Module 在线上有没有出问题,结果他说线上环境还没有用到这个 Module。(YAGNI
2
的又一体现)
We need to constantly check the test results. - Growing Object-Oriented Software Guided by Tests
Test Double - Our Thinking - How to stop hating your tests.
推荐文章