class C attr_accessor :log def err log.info('error!') if log raise end end
describe "C" do before :each do @obj = C.new end describe "#err" do it "ログにエラーの旨が記録されランタイムエラーが発生する" do sio = StringIO.new ; @obj.log = Logger.new(sio) lambda{lambda{@obj.err}.should change(sio, :to_s).from('').to('error!')}.should raise_error(RuntimeError) end end end