ich mein Modul zu testen und ich beschlossen, es im Vergleich zu anonymen Klasse zu testen:Stub unimplemented Methode in rspec
subject(:klass) { Class.new { include MyModule } }
MyModule
Methode verwendet name
innerhalb klass
. Um meine Spezifikationen arbeiten zu lassen, muss ich diese Methode name
stubben (was nicht implementiert ist). Also schrieb ich:
subject { klass.new }
allow(subject).to receive(:name).and_return('SOreadytohelp') }
aber es wirft:
RSpec::Mocks::MockExpectationError: #<#<Class:0x007feb67a17750>:0x007feb67c7adf8> does not implement: name
from spec-support-3.3.0/lib/rspec/support.rb:86:in `block in <module:Support>'
, wie diese Methode Stummel ohne ihn zu definieren?
Ich weiß nicht, ob es die Antwort ist, aber Sie haben einen Tippfehler; 'subjet {klass.new}'. Sollte es nicht sein: 'subject {klass.new}' (fehlt ein 'c'). Probieren Sie das aus und lassen Sie es uns wissen! –