2014-04-11 2 views
0

lib 디렉토리/RSpec에/코어/my_methods.rbRuby rspec에서 모듈을 호출하는 방법은 무엇입니까?

module MyLovelyModule 

class My_methods 

    def my_lovely_method 
    save_world 

    config.to_prepare do 
     Dir.glob(Rails.root + "../simpleRspec/dummy_classes.rb").each do |c| 
     require_dependency(c) 
     end 
    end 
end 
end 
    end 

lib 디렉토리/simpleRspec/dummy_classes.rb

describe MyLovelyModule do 

class DummyClasses 

    before(:all) do 
    @dummy = DummyClasses.new 
    @dummy.extend MyLovelyModule 
    end 

    describe "MyLovelyModule" do 
    it "saves the world" do 
     expect { 
     @dummy.my_lovely_method 
     }.to raise_error MeltDownException 
    end 
    end 
end 
end 

은 그 같은 오류가 발생했습니다 : -

C:/Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb:2:in `<top (required)>': uninitialized constant MyLovelyModule (NameError) 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

Process finished with exit code 1 

수 누군가하시기 바랍니다 이 문제에 대해 도움을 청하십시오.

+0

spec_helper.rb 파일이 있습니까? 너도 그걸 보여 줄 수 있니? 레일 앱인가요? – BroiSatse

답변

0

먼저 모듈을로드해야합니다.

require 'lib/rspec/core/my_methods.rb' 

describe MyLovelyModule do 

    class DummyClasses 
    end 

    before(:all) do 
    @dummy = DummyClasses.new 
    @dummy.extend MyLovelyModule 
    end 

    describe "MyLovelyModule" do 
    it "saves the world" do 
     expect { 
     @dummy.my_lovely_method 
     }.to raise_error MeltDownException 
    end 
    end 
end 

은 또한 당신이 당신의 시험에 @dummy에 액세스 할 수 없습니다 : 당신이 테스트를 정의하기 전에 당신은 또한 클래스를 닫아야합니다. before(:all) 대신 before(:each)을 사용해야합니다.

+0

이 오류로드 오류가 발생했습니다 .... C : /Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb : 1 : 'require'에 : 해당 파일을로드 할 수 없습니다. -lib/rspec/core /my_methods.rb (LoadError) \t C : /Users/afzala/RubymineProjects/simpleRspec/lib/simpleRspec/dummy_classes.rb : 1 :'<맨 위 (필수)>에서 ' \t -e : 1 : 로드 ' \t -e : 1 :'

' 종료 코드 1로 처리가 완료되었습니다. –

+0

예상대로. 레일 앱입니까,로드 경로에 무엇이 있습니까? 앱 모듈을 'rspec'폴더에 저장하는 이유는 무엇입니까? – BroiSatse

+0

해당 보석 없음 응용 프로그램 –

관련 문제