Я пытаюсь изучить rspec и написать с ним программу hello-world. Но похоже, что я не могу требовать моего класса должным образом. Он всегда показывает неопределенную ошибку метода. Это моя структура файла:Rspec не может потребовать файл
├── lib
│ └── map.rb
└── spec
├── map_spec.rb
└── spec_helper.rb
И мой map_spec.rb файл:
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 файл:
class Array
def map_sam_mario
[2,3,4]
end
end
И когда я делаю RSpec в текущий каталог, он всегда показывает эту ошибку:
NoMethodError:
undefined method `map_sam_mario' for # <RSpec::Expectations::ExpectationTarget:0x007fad5a9e8270>
Я следил за скринкастом и написал точно такой же код, как и видео. Я не знаю, почему это произошло. Я использую рубин 2.1.0 и RSpec 3.0.3
'ожидать ([1,2,3] .map_sam_mario {| e | e + 1}). To eq [2,3,4]' – dddd1919
Есть ли что-то не так с этой линией? –
Код, который я пишу, отличается от вашего, патч обезьяны, который вы пишете, вызывается 'expect()', но не является экземпляром 'Array'. – dddd1919