Rails应用程序中的TDD/BDD

4
当使用TDD/BDD方法开发应用程序时,应该有多精细?特别是对于Rails应用程序而言。
你会为每个字段单独进行测试,然后编写可以通过测试的迁移吗?所以每个字段都有自己的迁移?你实际上将测试什么来确保该字段存在?
我真的很想知道从哪里开始和如何变得更加精细。我想开始并且不知道如何测试每一个小东西,所以感到困惑。
我看到的大多数示例都使用验证作为示例。我知道在此之前编写了很多代码,但我不知道如何测试最基本的事情,例如“应该有一个名字字段”。
非常感谢您的帮助!
2个回答

1

你是否使用任何TDD/BDD工具,例如Cucumber

他们有一些关于如何在Rails中使用Cucumber的好信息。

基本上,编写你的功能,然后编写一个脚手架来使该功能通过测试。当你想要向你的模型添加另一个字段时,首先更新该功能,让它失败,然后编写一个迁移并更新你的视图以使测试通过。


所以我们现在谈论的是零代码生成,对吧?我的意思是,如果你创建了一个带有3个字段的脚手架,那么你现在首先编写的是没有测试的代码,对吧? - Phil
1
首先编写测试。它们会失败,因为还没有编写任何代码使它们通过。然后生成脚手架,使测试能够通过。一旦测试通过,请重复此过程。 - Trevor
1
我认为使用TDD时,您需要为每个小功能编写一个测试,然后编写足够的代码使其通过。为一堆代码编写测试,然后使用生成器使它们通过似乎违背了这一原则。 - Phil

1

我不会深入到那个程度。实际上,我通常不测试我的迁移,并且测试getter和setter通常不值得你的时间(总体而言)。坚持测试能够教你有关系统的知识,并表达代码的非平凡功能要求。

至于从哪里开始:选择一个你知道如何测试的需求 - 一个没有外部依赖项,路径绝对清晰的需求。编写测试来描述所需行为,实现它,并重构代码以消除在实现过程中可能添加的任何丑陋之处。在列表上完成了几个功能后,您可能会发现一些模糊的功能正在变得清晰,因为您已经制作了它们所需的构建块/依赖项。

一本比 AWDR The Rails Way 更详细介绍测试实践的好书是The RSpec Book,其beta版可在电子形式中获得。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接