2.1.1.2 常见错误:测试实现细节而非行为 2.1.1.2 常见错误:测试实现细节而非行为 ——当你的 语句在替你写注释,而不是守护契约 你有没有过这样的时刻? 凌晨两点,修改完一个看似无害的重构:把 换成 ,只为去重;把 替换成 ,只为可测试;把私有方法 提取为包级可见,只为在测试里调用它……然后——测试全绿。你长舒一口气,合上笔记本。 第二天上午十点,产品经理发来截图:“用户下单后,历史订单页显示重复记录。” QA 补充一句:“只在 iOS Safari 上复现。” 你打开日志,发现 对象被序列化时因 的无序性导致前端渲染错乱;再查测试,赫然看见一行断言: ——等等。 ?谁告诉你 一定有序?谁规定 返回的是 而非 ?