我是BDDer,所以我倾向于在外面进行。在高层次上,这意味着首先建立项目愿景(你会惊讶于很少有公司实际做到这一点),识别其他利益相关者及其目标(法律,架构等),然后将事情分解成功能集,功能和故事。故事是我们可以获得反馈的最小可用代码片段,它可能与一个或多个场景相关联。这就是Chris Matts所说的“特征注入” - 创建特征,因为它们需要支持利益相关者目标和项目愿景。 I wrote an article about this a while back.我证明了这一点,因为无论你的代码有多好或是多好的测试,如果首先是错误的代码,这并不重要。
一旦我们有了故事和场景,我倾向于首先编写UI,然后是支持它的类。 I wrote a blog post about a real-life example here - 我们用Java编程,所以你可能不得不用Rails做一些不同的事情,但是原则依然存在。当有实际的行为需要描述时,我倾向于开始编写单元测试 - 也就是说,一个类的行为有所不同,取决于它的上下文,以及之前已经发生的事情。通常情况下,第一类确实是控制器,我倾向于使用静态数据来构建UI。我会写第一个单元测试来帮助我摆脱那些静态数据。
首先进行用户界面让我可以尽早获得利益相关者的反馈,因为它是用户将与之交互的用户界面。然后,我开始“幸福的路径” - 让用户做最有价值的事情 - 接着是特殊情况,验证等。
然后我尽我所能说服我的PM让我们释放我们的代码提前,因为只有当用户真正掌握了它才能玩,你才能发现你真的做错了什么。
很好的答案,这种事情正是我之后的事情,'你做了什么,为什么你这样做'。 – 2010-10-17 21:19:38