У меня есть простая функция тестирования, которая называется test_feature_spec.rb
:
(это просто для того, чтобы перейти к сути этого SO вопроса ... реальные спецификации гораздо длиннее, реальные характеристики)
require "features_helper"
RSpec.feature "Simple Feature", type: :feature do
scenario "a test scenario" do
get "/"
end
end
Я могу делать различные вещи Rails-y, включая вещи, управляемые капибарой (например, visit such_n_such_path
). Однако вышеперечисленное вылетает:
Failures:
1) Simple Feature a test scenario
Failure/Error: get "/"
NoMethodError:
undefined method `get' for #<RSpec::ExampleGroups::SimpleFeature:0x000000011a799788>
Did you mean? gets
gem
Если я просто поменяю его с type: :feature
на type: :request
, все будет работать нормально:
> rspec spec/features/test_feature_spec.rb
.
Finished in 0.64913 seconds (files took 5.82 seconds to load)
1 example, 0 failures
Кажется, что с type
=> request
Rails или Rspec загружает некоторые вещи, чтобы разрешить вызов маршрутов контроллера, но это не с type
=> feature
.
Есть ли способ загрузить эти вспомогательные методы (например, get
и post
и т. Д.), Но при этом оставить функцию как type: :feature
?
Я знаю, что я мог бы просто изменить его на type: :request
, но технически это технические характеристики, хотя для некоторых из них, чтобы установить какое-либо состояние или сделать что-либо, они должны вызывать определенные URL-адреса.