追求代码质量 - 亲身体验行为驱动开发 - 编程入门网
uo; 这个场景编写了 代码。
清单 25. 如果没有调用 push 就调用 peek,会怎样?
同样,不会感到意外。如清单 26 所示,问题出现了。 清单 26. 没有可执行的内容
修复这个缺陷的逻辑类似于 pop() 的逻辑,如清单 27 所示。 清单 27. 这个 peek() 需要做一些修复
把我对 Stack 类作出的所有修改和修复综合起来,可以得到清单 28 中的代 码。 清单 28. 一个可正常工作的栈
在此,StackBehavior 类运行 7 种行为,以确保 Stack 类能按照 Linda 的 (和我自己的一点)规范运行。Stack 类 还可能使用某种重构(也许 pop() 方 法 应该调用 peek() 进行测试,而不是执行 size() 检查?),但是由于一直 使用了行为驱动过程,我可以很自信地对代码作出更改。如果出现了问题,很快 就可以收到通知。 结束语 您可能已经注意到,本月对行为驱动开发(BDD)的探索中,Linda 实际上就 是客户。在这里,可以把 Frank 看作开发人员。如果把这里的领域(即数据结 构)换成其它领域(例如一个呼叫中心应用程序),以上应用仍然类似。作为客 户或领域专家的 Linda 指出系统、特性或应用程序应该 执行什么功能,像 Frank 这样的开发人员则使用 BDD 确保正确理解了她的要求并实现这些需求。 对于很多开发人员来说,从测试驱动开发转移到 BDD 是明智的转变。如果采 用 BDD,就不必考虑测试,而只需注意应用程序的需求,并确保应用程序的行为 执行它 应该 执行的功能,以满足那些需求。 在这个例子中,使用 BDD 和 JBehave 使我可以根据 Linda 的说明轻松地实 现一个可正常工作的栈。通过首先 考虑行为,我只需倾听她的需求,然后相应 地构建栈。在此过程中,我还发现了 Linda 没有提及的关于栈的其他内容。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |