メソッド内のメソッドの動作をスタブ化しようとしています:
class A
def method_one(an_argument)
begin
external_obj = ExternalThing.new
result = external_obj.ext_method(an_argument)
rescue Exception => e
logger.info(e.message)
end
end
end
仕様:
it "should raise an Exception when passed a bad argument" do
a = A.new
external_mock = mock('external_obj')
external_mock.stub(:ext_method).and_raise(Exception)
expect { a.method_one("bad") }.to raise_exception
end
ただし、例外が発生することはありません。
私も試しました:
it "should raise an Exception when passed a bad argument" do
a = A.new
a.stub(:ext_method).and_raise(Exception)
expect { a.method_one("bad") }.to raise_exception
end
それもうまくいきません。この場合、どのようにして外部メソッドを適切にスタブして例外を強制することができますか?
アイデアをよろしくお願いします!