RSpec не может найти класс внутри модулей - PullRequest
0 голосов
/ 28 августа 2018

У меня есть класс в app / services / a / b / c.rb

Файл Rspec находится в spec / services / a / b / c_spec.rb

Мой класс выглядит так:

module a
 module b
   class c
   end 
 end
end

Мой rspec выглядит так:

require 'rails_helper'

describe a::b::c do
  describe '#test' do
    it 'should test func' do
    end
  end
end

Но каждый раз, когда я запускаю тест, я получаю эту ошибку ::

неинициализированная константа a :: b :: c

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 28 августа 2018

@ Abhishek Я чувствую, что проблема в том, что ваш класс не требуется / загружен Rails. Попробуйте запросить этот файл в spec_helper.rb.

В качестве альтернативы вы можете добавить эту папку в eager_load_paths и установить config.eager_load = true в config / environment / test.rb

Вы можете подтвердить мою догадку, используя консоль rails в тестовой среде, а затем проверить, что вызов A::B::C дает uninitialized constant A::B::C.

Теперь попробуйте запросить файл app/services/A/B/C.rb, и на этот раз он не выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...