2012-01-02 2 views
3

는 여기나가서 설명하자면 NameError : 초기화되지 않은 상수 내가 레일에 단위 테스트와 함께 작동 ...

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는 다음이 포함되어 테스트 \ 장치 \의 sample_test.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

레일, test_helper에 당신을 위해 모델을로드하는주의를 기울여야한다. Student 클래스는 어디에 정의되어 있습니까?

lib /에있는 파일은 Rails 3.x에서 기본적으로 자동로드되지 않으므로이 경우 '학생'을 명시 적으로 요구해야합니다.

0

Sample 유닛 테스트에서 Student 객체를 인스턴스화하는 것처럼 보입니다. 그 의도적이거나 오타입니까?

질문에 대한 답변은 @Jesse Stormier가 언급 한대로 ActiveRecord :: Student 클래스 구현의 세부 정보 및 위치에 따라 다릅니다.

관련 문제