2012-01-02 2 views
3

Я работаю с модульным тестированием в Rails .., Вот мой код находится в тесте \ блока \ sample_test.rbNameError: неинициализированный постоянная

require 'test_helper' 
require 'test/unit' 
require 'sample' 

class SampleTest < ActiveSupport::TestCase 
    test "student details" do 
     student = Student.new 
     student.Date_of_joining = DateTime.now 
     student.id = "123" 
    assert_student student 
    end 
end 

И мои приложения \ модель \ sample.rb содержит следующий ..,

class Sample  
    def assert_student(student) 
     #assert_equal "123", student.external_reference 
     "#{student_id}" 
    end 
end 

, когда я бегу "тест грабли: блоки" он показывает следующую ошибку

test_student_details(SampleTest): 
    NameError: uninitialized constant SampleTest::Student 
     test/unit/sample_test.rb:7:in `block in <class:SampleTest>' 

Как я могу это исправить?

ответ

3

Вам необходимо будет указать файл, в котором ваш SampleTest :: Student должен его протестировать.

0

Попробуйте добавить :: глобальный масштаб сбруя так:

student = ::Student.new 
2

Rails следует позаботиться о загрузке своих моделей для вас в test_helper, так что вам не нужно явно требуют «образец». Где определяется класс Student?

Файлы в lib/не загружаются автоматически по умолчанию в Rails 3.x, поэтому в этом случае вам потребуется явно указать «ученик».

0

Похоже, вы создаете экземпляр объекта Student в тесте образца образца. Это преднамеренное или опечатка?

Ответ на ваш вопрос зависит от деталей и местоположения реализации ActiveRecord :: Student, как упоминал @Jesse Stormier.

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