2016-03-24 12 views

答えて

1

with(a, b)と書くと、と呼び出され、a, bの場合はとなります。たとえば、次のようになります。

it 'prints' do 
    expect(STDOUT).to receive(:puts).with(1, 2) 
    puts 1, 2 
end 

あなたは何か違うことをしようとしています。 putsbook_aで呼び出し、次にと呼び、book_bとします。 orderedを使用して、これをRSpecに指定することができます。

it 'prints each book' do 
    expect(STDOUT).to receive(:puts).with('1. Harry Potter').ordered 
    expect(STDOUT).to receive(:puts).with('8. Lord of the Rings').ordered 
    @library.print_books 
end 

RSpecのは今、その後"8. Lord of the Rings"で、puts"1. Harry Potter"で最初に呼び出されることを確認します。見つからない、3冊目の本がある、または間違った順序で呼び出しが行われた場合、テストは失敗します。

+0

偉大な答え、ありがとう@クリスチャン – Viro

関連する問題