【问题标题】:Can Nightwatch be used to test Rails?Nightwatch 可以用来测试 Rails 吗?
【发布时间】:2017-07-12 03:15:06
【问题描述】:

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

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

【问题讨论】:

  • Minitest(Rails 默认)和 RSpec 正在测试专门用于 Ruby/Rails 应用程序的框架字。您也许可以使用 Nightwatch 进行一些测试,但我怀疑您是否可以进行全面覆盖测试。我的 2 美分是坚持久经考验的。我从来没有使用过 Nightwatch,所以我只是把它作为评论而不是答案。

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


【解决方案1】:

是的,它可以用来测试 Rails。但只能从外部(仅通过浏览器)。所以没有单元/控制器/视图测试。 您需要 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 带有单元测试、功能/控制器测试和集成测试。最类似于 Nightwatch 的内置东西是集成测试:http://guides.rubyonrails.org/v4.1/testing.html#integration-testing

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

【讨论】:

  • 好吧,我们还没有升级到 Rails 4.2 或我们正在运行的任何版本。顺便问一下,Rails 内置的测试框架叫什么?我正在阅读 Hartl 教程,但在任何地方都没有看到它这样命名。
猜你喜欢
  • 2016-06-04
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2010-09-11
相关资源
最近更新 更多