作者:fangxiaoping47 | 来源:互联网 | 2023-01-29 19:45
我们的创业公司的承包商安装了基于Selenium的Nightwatch测试框架,因为我们的堆栈是React-heavy.但他告诉我它甚至可以用来测试我们的Rails代码.相反,一位新的承包商表示,守夜人无法对我们的Rails控制器和模型进行单元测试(这对我来说很有意义).
谁是对的?你是否认为第一个程序员只是考虑到我们会进行端到端测试(某些输入导致某些输出),而我们不需要测试Rails代码的细节?我怀疑并且作为新的承包商断言,如果我们想要成为TDD商店,我们是否需要RSpec或其他一些基于Ruby的测试框架来处理我们的Rails代码?
1> Pascal..:
是的,它可以用来测试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的内置东西是Integration-tests:http://guides.rubyonrails.org/v4.1/testing.html#integration-testing
您还可以查看诸如Capybara(https://github.com/teamcapybara/capybara)之类的库,它们自称为验收测试框架.它与TestUnit/Minitest/Rspec很好地集成.