Nightwatch可以用来测试Rails吗?
Can Nightwatch be used to test Rails?
我们初创公司的承包商安装了基于 Selenium 的 Nightwatch 测试框架,因为我们的堆栈是 React-heavy。但他告诉我,它甚至可以用来测试我们的 Rails 代码。相反,一位新承包商表示 Nightwatch 无法对我们的 Rails 控制器和模型进行单元测试(这对我来说很有意义)。
谁是对的?您是否认为第一个程序员的想法只是我们将进行端到端测试(某些输入导致某些输出),而我们不需要测试 Rails 代码的细节?如果我们想成为 TDD 商店,是否如我怀疑和新承包商所断言的那样,需要 RSpec 或其他一些基于 Ruby 的测试框架来处理我们的 Rails 代码?
是的,它可以用来测试Rails。但只能从外部(只能通过浏览器)。所以没有 Unit/Controller/View 测试。
您需要 MiniTest 或 Rspec。
我的两分钱(另见@SteveCarey 的评论):因为我更喜欢坚持使用 Rails 附带的东西并尽可能少地使用外部工具:
查看 Rails 5.1 引入的系统测试,或者,如果您使用的是旧版本,请查看是否可以使用 Capybara/Integration 测试编写这些测试。
更新:
您可以在此处找到有关测试框架的更多详细信息:http://guides.rubyonrails.org/v4.1/testing.html#brief-note-about-minitest
以前是 Test::Unit,现在是 Minitest。但是基本原理是一样的所以没关系。
另一个流行的测试框架是RSpec。如果你愿意,你可以使用它来代替 Minitest/TestUnit。我更喜欢 Minitest,但这两种框架各有利弊。
Rails 4.2 带有单元测试、Functional/Controller-tests 和集成测试。最类似于 Nightwatch 的内置东西是集成测试:http://guides.rubyonrails.org/v4.1/testing.html#integration-testing
您还可以查看自称为验收测试框架的 Capybara (https://github.com/teamcapybara/capybara) 等库。它与 TestUnit/Minitest/Rspec.
很好地集成
我们初创公司的承包商安装了基于 Selenium 的 Nightwatch 测试框架,因为我们的堆栈是 React-heavy。但他告诉我,它甚至可以用来测试我们的 Rails 代码。相反,一位新承包商表示 Nightwatch 无法对我们的 Rails 控制器和模型进行单元测试(这对我来说很有意义)。
谁是对的?您是否认为第一个程序员的想法只是我们将进行端到端测试(某些输入导致某些输出),而我们不需要测试 Rails 代码的细节?如果我们想成为 TDD 商店,是否如我怀疑和新承包商所断言的那样,需要 RSpec 或其他一些基于 Ruby 的测试框架来处理我们的 Rails 代码?
是的,它可以用来测试Rails。但只能从外部(只能通过浏览器)。所以没有 Unit/Controller/View 测试。 您需要 MiniTest 或 Rspec。
我的两分钱(另见@SteveCarey 的评论):因为我更喜欢坚持使用 Rails 附带的东西并尽可能少地使用外部工具:
查看 Rails 5.1 引入的系统测试,或者,如果您使用的是旧版本,请查看是否可以使用 Capybara/Integration 测试编写这些测试。
更新:
您可以在此处找到有关测试框架的更多详细信息:http://guides.rubyonrails.org/v4.1/testing.html#brief-note-about-minitest
以前是 Test::Unit,现在是 Minitest。但是基本原理是一样的所以没关系。
另一个流行的测试框架是RSpec。如果你愿意,你可以使用它来代替 Minitest/TestUnit。我更喜欢 Minitest,但这两种框架各有利弊。
Rails 4.2 带有单元测试、Functional/Controller-tests 和集成测试。最类似于 Nightwatch 的内置东西是集成测试:http://guides.rubyonrails.org/v4.1/testing.html#integration-testing
您还可以查看自称为验收测试框架的 Capybara (https://github.com/teamcapybara/capybara) 等库。它与 TestUnit/Minitest/Rspec.
很好地集成