У меня есть простой движок rails, который подает json blob, когда конечная точка используется приложением.Я не использовал генераторы для создания движка, так как он добавлял функцию к существующему gem .Любая рекомендация / предложение по настройке конфигураций Rspec для движка с примером spec_helper, пожалуйста.
cook-book
- app
- controllers
- cook
- book
- service_controller.rb
- config
- routes.rb
- spec
- controllers
- cook
- book
- service_controller_spec.rb
filename : service_controller.rb
module Cook
module Book
class ServiceController < ApplicationController
def index
render json: { name: 'Tastey latest and greatest'}
end
end
end
end
имя файла : rout.rb
Cook::Book::Engine.routes.draw do
resources :service, only: [:index]
end
имя файла : service_controller_spec.rb
require 'spec_helper'
describe Cook::Book::ServiceController do
describe '#index' do
#....
end
end
имя файла : spec_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require 'action_controller'
require 'action_view'
require 'combustion'
require 'rails'
require 'simplecov'
Combustion.initialize! :all
require 'rspec/rails'
SimpleCov.start do
add_filter do |file|
coverage_dir 'target/coverage'
end
end
Dir[File.expand_path('../support/**/*.rb', __FILE__)].each { |f| require f }
RSpec.configure do |config|
config.color = true
config.expect_with :rspec do |c|
c.syntax = :expect
end
end
Ошибка:
, если я не использую Сгорание в spec_helper, тогда контроллеры двигателя Rails не монтируются и выдают ошибкуAn error occurred while loading ./spec/controllers/cook/book/service_controller_spec.rb.
NameError : uninitialized constant Cook::Book::ServiceController
После добавления сгорания я начал видеть ошибки в существующих спецификациях, кроме двигателя Failure/Error: Combustion.initialize! :action_controller, :action_view
FrozenError:
can't modify frozen Array