ruby-on-rails - Nightwatch 可以用来测试 Rails 吗?

标签 ruby-on-rails ruby selenium rspec nightwatch.js

我们初创公司的承包商安装了基于 Selenium 的 Nightwatch 测试框架,因为我们的堆栈是 React-heavy。但他告诉我,它甚至可以用来测试我们的 Rails 代码。相反,一位新承包商表示 Nightwatch 无法对我们的 Rails Controller 和模型进行单元测试(这对我来说很有意义)。

谁是对的?您是否认为第一个程序员的想法只是我们将进行端到端测试(某些输入导致某些输出),而我们不需要测试 Rails 代码的细节?如果我们想成为 TDD 商店,我们是否如我怀疑和新承包商所断言的那样,需要 RSpec 或其他一些基于 Ruby 的测试框架来处理我们的 Rails 代码?

最佳答案

是的,它可以用来测试 Rails。但只能从外部(只能通过浏览器)。所以没有单元/ Controller / View 测试。 对于这些,您需要 MiniTest 或 Rspec。

我的两分钱(另请参阅@SteveCarey 的评论):因为我更喜欢坚持使用 Rails 附带的功能并尽可能少地使用外部工具:

查看 Rails 5.1 引入的系统测试,或者,如果您使用的是旧版本,请查看是否可以使用 Capybara/Integration Tests 编写这些测试。

更新:

您可以在此处找到有关测试框架的更多详细信息:http://guides.rubyonrails.org/v4.1/testing.html#brief-note-about-minitest

它是 Test::Unit,现在是 Minitest。但基础是相同的,所以这并不重要。

另一个流行的测试框架是 RSpec。如果你愿意,你可以使用它来代替 Minitest/TestUnit。我更喜欢 Minitest,但这两种框架各有利弊。

Rails 4.2 带有单元测试、功能/ Controller 测试和集成测试。最类似于 Nightwatch 的内置东西是集成测试:http://guides.rubyonrails.org/v4.1/testing.html#integration-testing

您还可以查看诸如 Capybara ( https://github.com/teamcapybara/capybara ) 之类的库,它自称为验收测试框架。它与 TestUnit/Minitest/Rspec 很好地集成。

关于ruby-on-rails - Nightwatch 可以用来测试 Rails 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047769/

相关文章:

ruby-on-rails - Rails 3 strip 有非数字 ID 的路线

ruby-on-rails - 在 Heroku+localhost 上调度 Rails 任务

ios - Rubymotion 和结构指针

ruby-on-rails - 自定义设计路线

ruby-on-rails - 如何将 JSON 文件中的字符串转换为 Ruby 哈希?

ruby-on-rails - 每个循环 : show item once and sum quantity

ruby-on-rails - 在 Ruby on Rails 中访问自定义 header 变量

java - 如何使用 Selenium 定位 Facebook 的生日元素?

python - 在 python 中关闭 Firefox Web 驱动程序时出现意外警报

java - Selenium 检查窗口当前是否打开