나는 rspec를 배우고 그것으로 안녕하세요 - 세계 프로그램을 작성하려고합니다. 하지만 내 수업을 제대로 요구할 수없는 것 같습니다. 항상 정의되지 않은 메소드 오류를 표시합니다.Rspec는 파일을 요구할 수 없다
require 'map'
describe 'Map' do
it 'should iterate over array and return new array based on some simple addition' do
expect([1,2,3]).map_sam_mario {|e| e+1}.to eq [2,3,4]
end
end
이 내 map.rb 파일입니다 :
├── lib
│ └── map.rb
└── spec
├── map_spec.rb
└── spec_helper.rb
그리고 내 map_spec.rb 파일이 내 파일 구조입니다
class Array
def map_sam_mario
[2,3,4]
end
end
그리고 난에 RSpec에 작업을 수행 할 때 현재 디렉토리에는 항상 다음 오류가 표시됩니다.
NoMethodError:
undefined method `map_sam_mario' for # <RSpec::Expectations::ExpectationTarget:0x007fad5a9e8270>
나는 스크린 캐스트를 따르고 있었고 비디오와 정확히 같은 코드를 썼다. 왜 이런 일이 일어 났는지 나는 모른다. 나는 당신이 expect
에 map_sam_mario
전화 루비 2.1.0 및 RSpec에 3.0.3
기대 ([1,2,3] .map_sam_mario (| e | e + 1}). ~ eq [2,3,4]' – dddd1919
이 라인에 문제가 있습니까? –
필자가 작성한 코드는 여러분의 것과 다르다. 작성한 원숭이 패치는'expect()'에 의해 호출되지만'Array' 인스턴스에는 호출되지 않는다. – dddd1919