作者回复: 我很喜欢一个说法,软件工匠,把写代码这件事当做手艺活来不断打磨。
作者回复: 你都说了“理想状态”下,现实情况是,理想状态不存在。验收测试就是站在业务的视角看待系统的一个过程,而其它几个都是站在软件本身的角度在看。
以我对开发做测试这件事的理解来看,开发人员在测试用例设计上,与测试人员还是有很大差距的,测试人员总是可以探索出不同的角度打败你。
作者回复: 做测试的程序员不多,做BDD的人就更少,所以,只要学会这些东西,就比业界大部分程序员水平高了。
作者回复: 一般说集成测试,还是站在内部的角度,也就是技术的角度在说,而验收测试应该是站在业务的角度,没做好的另当别论。
作者回复: 你的理解很对,BDD 不太可能一蹴而就,需要各方不断磨合。
作者回复: 我还真不知道哪个开源项目这么做,我都是在内部项目上这么做的。
作者回复: 关于遗留系统的讨论正在不远处等着你。
作者回复: 不做的理由有一万个,做的理由有一个就够了!
作者回复: 对,应该是这样的。
作者回复: 对比这里的例子,Selenium是用来实现这里的步骤定义的。
作者回复: 这里面在业务层需要组合的代码是 Given...When...Then 的部分。当你有了足够的基础描述之后,就可以任意组合这些语句了。至于胶水层代码,它本来就是为了支持每一个 Given/When/Then 的实现,不需要更多的能力。