J'essaie d'apprendre rspec et d'écrire un programme Hello-World avec elle. Mais il semble que je ne puisse pas exiger ma classe correctement. Il affiche toujours une erreur de méthode non définie. Ceci est ma structure de fichier:Rspec ne peut pas exiger le fichier
├── lib
│ └── map.rb
└── spec
├── map_spec.rb
└── spec_helper.rb
Et mon fichier 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
Ceci est mon fichier map.rb:
class Array
def map_sam_mario
[2,3,4]
end
end
Et quand je fais un rspec dans la répertoire en cours, il affiche toujours cette erreur:
NoMethodError:
undefined method `map_sam_mario' for # <RSpec::Expectations::ExpectationTarget:0x007fad5a9e8270>
Je suivais un screencast et écrivais exactement le même code que la vidéo. Je ne sais pas pourquoi c'est arrivé. J'utilise Ruby 2.1.0 et rspec 3.0.3
'expect ([1,2,3] .map_sam_mario {| e | e + 1}). À eq [2,3,4]' – dddd1919
Y at-il un problème avec cette ligne? –
Le code que j'ai écrit est différent du vôtre, le patch de singe que vous écrivez est appelé par 'expect()' mais pas une instance de 'Array'. – dddd1919