0

在阅读了 rspec 2 和 capybara 2 之后,就结构目录布局而言,我对最佳实践感到有些困惑。各种规范之间似乎有一些重叠(例如请求规范控制器规范),我想知道组织这些文件的“最佳实践”方式是什么,每个规范应该测试什么?

到目前为止我收集到的(可能是错误的)如下:

spec/factories

Factory Girl使用的工厂(如果使用)

spec/features

Capybara 测试,它模拟用户和您的应用程序之间的交互。

spec/models

模型验证测试

spec/controllers

测试控制器操作(#new、#edit、#create 等)

spec/requests

测试各种控制器之间的集成(比控制器规格“高”一级)

spec/support

定义可能对包含在某些规范中有用的模块的文件。

spec/acceptance

验收测试。

spec/views

与视图是否正确呈现有关的测试

我个人认为,例如spec/views,从 capybara 测试也与视图(以及它们的外观)有关的意义上来说,这似乎是不必要的,并且控制器测试也可以轻松地测试是否呈现了某个视图。

你觉得呢?你有没有什么想法?

4

1 回答 1

1

从我的角度来看spec/acceptancespec/features都是一样的。

spec/views是完全不同的东西,因为您可以单独测试特定的视图或部分。这对于复杂的视图非常有用,您不需要任何浏览器模拟器。

关于水豚规范,我使用了另一种方法,您可以在此处阅读:https ://gist.github.com/phoet/6683280#file-readme-md

于 2013-09-27T13:13:17.677 回答