Ruby on rails 在rails中,我应该在capybara(或集成)测试中包含用户输入表单错误流吗?
Rails支持几种类型的测试:Ruby on rails 在rails中,我应该在capybara(或集成)测试中包含用户输入表单错误流吗?,ruby-on-rails,testing,capybara,integration-testing,acceptance-testing,Ruby On Rails,Testing,Capybara,Integration Testing,Acceptance Testing,Rails支持几种类型的测试: 模型试验 控制器测试 功能测试 集成测试 而且,有了水豚,它还可以支持: 验收/集成/功能(取决于作者)测试 在一些站点上,我看到这些验收/集成/功能测试应该只测试特定的流,而将边缘案例留给其他类型的测试。例如: 集成测试用于测试任意数量控制器之间的交互。它们通常用于测试应用程序中的重要工作流 虽然这些对于测试高级功能非常有用,但请记住,功能规格运行缓慢。不要使用Capybara测试应用程序中的所有可能路径,而是让测试边缘情况取决于您的模型、视图和控制器
- 模型试验
- 控制器测试
- 功能测试
- 集成测试
- 验收/集成/功能(取决于作者)测试
编辑接受的答案是由于评论。用户输入表单错误由in-Rails处理。因此,您可以使用来覆盖这些错误。但是这些类型的测试只验证您的模型上是否存在验证。我不确定这些类型的测试除了允许您在是的,活动记录验证可以通过单元测试进行测试,尽管我倾向于不这样做。我认为DHH对此的说法是有道理的:“不要测试标准的活动记录关联、验证或作用域。”.关于capybara测试,我想知道我是否应该测试错误是否正确显示。你认为如何?可能是一个单一的UI测试,测试flash消息是否普遍存在。如果flash消息作为应用程序布局的一部分出现,则不需要针对每个单独的用例进行测试。我通常更喜欢havi将输入附近的错误消息显示为错误,而不是一般的闪存消息。每个表单只测试一个失败案例是一个好主意吗?有很多方法可以处理错误消息,包括客户端javascript。我只会为每个表单测试一个实例。如果错误显示代码是模块化的,您可以只测试模块我很喜欢尝试提取用于显示表单错误的代码并对该部分进行单元测试的想法,我会尝试的。谢谢。