ruby-on-rails - 如何在没有 Controller 的情况下进行集成测试?

标签 ruby-on-rails testing

我已经用 rspec 和 capybara 完成了集成(又名“功能”)测试,但我正在构建一个复杂的功能,它结合了各种 ruby​​ 类和 rails 模型,并且没有真正涉及 Controller 或 UI。

我想执行一系列涉及这些不同类和模型的测试,以确保它们都能按预期一起工作。

这看起来不像是单元测试,因为这些测试需要多个对象协同工作。

它也不像传统的 Rails“集成”测试,因为我没有在 UI 中导航或点击 Controller 。

那么这些是什么以及如何在我的 Rails 应用程序中构建和组织它们?

最佳答案

您不限于 Rails 的“开箱即用”文件夹集或测试类型。您可以添加其他文件夹,并根据需要基本上组织它们。如果您刚刚开始并且没有很多,我只是将它们放在 spec/objectsspec/poros (普通旧 Ruby 对象)中并测试他们在那里。随着它们数量的增加,您可能希望将它们分解到文件夹中 - 只需确定一个有意义的约定并遵循它即可。一旦您超出了 Rails 给您的标准集,答案本身就没有正确或错误的答案 - 它只是“做有意义的事”。

至于它们是什么类型的测试,我仍然称它们为集成测试。虽然他们没有测试整个 Rails 堆栈的集成,但他们正在测试几个对象之间的集成。这是否意味着您将它们放在 spec/integration_tests 文件夹中取决于您 - 我个人不会。

关于ruby-on-rails - 如何在没有 Controller 的情况下进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194237/

相关文章:

ruby-on-rails - Doorkeeper 将资源服务器与授权服务器分离

testing - Gulp 和 Jenkins 中的 Protractor 和 Selenium

django - 为什么 django test --keep-db 适用于 postgres 数据库但不适用于默认的 sqlite3

unit-testing - 为什么模拟类(class)这么糟糕?

javascript - 旧版本的 Visual Studio 扩展

ruby-on-rails - Rails 简单访问控制

ruby-on-rails - railsfields_for渲染具有多个局部变量的局部变量,产生 undefined variable

testing - 如何为 Rust 二进制 crate 编写回归测试?

ruby-on-rails - 在我的应用程序中为 Mongoid 创建索引?

html - Rails bootstrap flash 不褪色