Я хотел бы создать spec_helper_integration
файл и положить функциональность, специфичную для интеграции спецификации там.
У вас должно быть уже require 'rails_helper'
в верхней части всех ваших спецификаций. В верхней части вашей интеграции спецификации говоря:
require 'rails_helper'
require 'spec_helper_integration'
Затем создайте spec_helper_integration.rb
файл в той же папке, что и файл rails_helper.rb
.
spec_helper_integration:
#I'm taking a guesstimate as to your integration spec configuration, but it's
#likely something like the following line:
#don't also have this in your spec_helper or rails_helper files:
require 'capybara/rails'
#configure your integration specs:
RSpec.configure do |config|
config.before(:each) do
allow_any_instance_of(ApplicationController).to receive(:set_seo).and_return('seo_text')
end
end
Это хорошая практика, чтобы изолировать код, где это требуется только; делая это, ваш stubbing метода ApplicationController активируется только во время работы ваших спецификаций интеграции, а не с вашими другими спецификациями, например, с параметрами устройства или контроллера.
Перемещение вперед, любой дополнительный код, специфичный для интеграции, также должен быть помещен в ваш файл spec_helper_integration.
'before (: each)' отлично работает. – user