2014-01-29 4 views
0

Я пытаюсь создать для моего тестового класса (Библиотека/calorie_form.rb)Rails 4 Тестирование пользовательских классов инициализированы постоянной

class CalorieForm 
    attr_accessor :is_male, :weight, :age, :height, :physical_activity, :trainings_per_week 
end 

Я написал следующий тест и поместить его в тест/блок/calorie_calculator_test.rb

require 'test/unit' 

class CalorieCalculatorTest < Test::Unit::TestCase 

    def test_calculations 
    calorie_form = CalorieForm.new 
    calorie_form.is_male = false 
    calorie_form.weight = 55 
    calorie_form.height = 169 
    calorie_form.physical_activity = 1.4 
    calorie_form.trainings_per_week = 4 
    end 
end 

Это должно быть в порядке (этот код прекрасно работает, когда я положил его в контроллер метод), но когда я запускаю тест с использованием RubyMine я получил следующее сообщение об ошибке

C:\Ruby200\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Itest C:/CalorieCalc/test/unit/calorie_calculator_test.rb 
Testing started at 1:19 AM ... 
Run options: 

# Running tests: 

E 

Finished tests in 0.005005s, 199.8002 tests/s, 0.0000 assertions/s. 

    1) Error: 
CalorieCalculatorTest#test_calculations: 
NameError: uninitialized constant CalorieCalculatorTest::CalorieForm 
    C:/CalorieCalc/test/unit/calorie_calculator_test.rb:8:in `test_calculations' 

1 tests, 0 assertions, 0 failures, 1 errors, 0 skips 

ruby -v: ruby 2.0.0p353 (2013-11-22) [i386-mingw32] 

У меня есть эта линия в моем application.rb

config.autoload_paths += %W(#{config.root}/lib) 
  1. Что я делаю неправильно?
  2. Есть ли способ автогенерировать тестовый файл для класса, расположенного в lib/using RubyMine 6?

UPDATE

Если я пишу

require 'calorie_form' 

я получил

C:/CalorieCalc/test/unit/calorie_calculator_test.rb:2:in `require': cannot load such file -- calorie_form (LoadError) 

Кроме того, я мог бы сделать

require_relative '../../lib/calorie_form' 

или

require 'C:\CalorieCalc\lib\calorie_form.rb' 

но оба варианта очень некрасиво.

Почему я не могу просто написать запрос «calorie_form»?

ответ

2

Я думаю, что если добавить:

require 'calorie_form' 

в верхней части тестового файла, то он должен работать для вас

+0

C: /CalorieCalc/test/unit/calorie_calculator_test.rb: 2: в 'require ': не может загрузить такой файл - calorie_form (LoadError) –

+0

Также я мог бы сделать require_relative' ../../lib/calorie_form 'или require' C: \ CalorieCalc \ lib \ calorie_form.rb ', но оба варианты очень уродливы. –

+0

попробуйте «test_helper» из верхней части тестового файла блока, создайте «test_helper.rb» в тесте/папке, если он не существует, и добавьте преднамеренное исключение, например «рейз» Loaded TestHelper «» в качестве зонда, чтобы сделать конечно, файл читается ... – SciPhi

Смежные вопросы