2015-02-23 2 views
0

Я следую учебнику Lynda по Rspec. Я решал одну из проблем, но что-то вроде бы не работало. Моя структура файла:неинициализированная константа NumberHelper при включении

food_finder/Библиотека/поддержка/number_helper.rb
food_finder/спецификации/поддержка/number_helper_spec.rb

Мой number_helper.rb выглядит следующим образом:

module NumberHelper 

    def number_to_currency(number, options={}) 
     #some_code 
    end 
end 

и number_helper_spec .rb is:

describe 'NumberHelper' do 

    include NumberHelper 

    describe '#number_to_currency' do 
     #some_test_code 
    end 

    end 

по исполнению формы food_finder directory:

rspec spec/support/number_helper_spec.rb 

Я получаю сообщение об ошибке:

in `block in ': uninitialized constant NumberHelper (NameError)

+0

ли это работа, если вы удалите строку 'include NumberHelper'? – zwippie

+0

дает ошибку «неопределенный метод' number_to_currency ». Очевидно? – sonalkr132

+0

Вы добавили 'require 'rails_helper'' поверх спецификационного файла? Помогает ли вам добавить «require» support/number_helper'' поверх спецификационного файла? (Знаете ли вы, что 'number_to_currency' уже является встроенным помощником Rails?) – zwippie

ответ

0

Ваш код был штраф. Модуль должен быть загружен include NumberHelper, а не require 'support/number_helper'. Проблема возникла из-за того, что не запущен rspec --init из корня приложения, поэтому ни одна из настроек в spec_helper.rb не загрузилась.

Что касается комментариев, упоминая number_to_currency метод Rails, модуль загружается в этом упражнении смоделирован после версии Rails, но является самодостаточным:

number_helper.rb

# This module illustrates how additional functionality can be 
# included (or "mixed-in") to a class and then reused. 
# Borrows heavily from Ruby on Rails' number_to_currency method. 
module NumberHelper 

    def number_to_currency(number, options={}) 
    unit  = options[:unit]  || '$' 
    precision = options[:precision] || 2 
    delimiter = options[:delimiter] || ',' 
    separator = options[:separator] || '.' 
... 
Смежные вопросы