Сконфигурируйте Rspec для движка Rails - PullRequest
0 голосов
/ 23 октября 2018

У меня есть простой движок 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

Ошибка:

  1. , если я не использую Сгорание в spec_helper, тогда контроллеры двигателя Rails не монтируются и выдают ошибкуAn error occurred while loading ./spec/controllers/cook/book/service_controller_spec.rb. NameError : uninitialized constant Cook::Book::ServiceController

  2. После добавления сгорания я начал видеть ошибки в существующих спецификациях, кроме двигателя Failure/Error: Combustion.initialize! :action_controller, :action_view FrozenError: can't modify frozen Array

...