可以使用Nightwatch来测试Rails吗?

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

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

是的,它可以用来测试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附带unit testing,function/控制器测试和集成测试。 类似于Nightwatch的内置东西是Integration-tests: http : //guides.rubyonrails.org/v4.1/testing.html#integration-testing

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

Interesting Posts