2015-01-28 3 views
0

В настоящее время я успешно тестирую помощника Rails (4.2) с помощью Rspec (3). Однако установка тестового файла немного громоздка. Как я могу оптимизировать строки запроса и/или включения?Streamline Rspec Test of Rails Helper

# spec/helpers/nav_helper_spec.rb 
require 'spec_helper' 
require_relative '../../app/helpers/nav_helper' # this seems bulky 

describe NavHelper do 
    include NavHelper # this seems repetitive 
    ... 
end 

Заранее благодарен!

ответ

0

Если у вас есть настройка по умолчанию, у вас, вероятно, есть rails_helper в дополнение к вашему spec_helper. Если вы не возражаете загружать все каталоги Rails в этот один spec (бит производительности), вы можете потребовать, чтобы вместо spec_helper (очистка требуется). Но нет ничего плохого в том, чтобы включить только то, что вам нужно, оно будет работать быстрее.

Rspec также будет смешивать в помощнике, если он знает тип спецификации. Вы можете включать config.infer_spec_type_from_file_location! в вашем помощнике спецификации, или включают в себя тип в describe декларации:

describe NavHelper, type: :helper do 

В любом случае вы будете иметь возможность использовать что-то вроде expect(helper.method_name).to eq(result) без явного включения модуля.

+0

У меня уже есть эта строка конфигурации и независимо от того, задаю ли я тип, методы вспомогательного модуля недоступны, если я специально не включу. Кроме того, кажется, что по крайней мере я должен был бы «требовать относительную». Все это работает более чисто в другом приложении, но я не вижу других. Спасибо за ваш ответ! – steel

+0

Убедитесь, что ваш файл назван правильно и находится в правильном каталоге: см. [Здесь] (https://www.relishapp.com/rspec/rspec-rails/v/3-0/docs/helper-specs/helper -спец) – hiattp

+0

Это. Я обновил пример с именем/местоположением файла. Извините за мои отложенные ответы! – steel