私のコントローラーは子book_loanを作成できます。機能テストでこの動作をテストしようとしていますが、assert_differenceメソッドを使用するのに苦労しています。運が悪かったので、book_loansのカウントをassert_differenceに渡すいくつかの方法を試しました。
test "should create loan" do
@request.env['HTTP_REFERER'] = 'http://test.com/sessions/new'
assert_difference(books(:ruby_book).book_loans.count, 1) do
post :loan, {:id => books(:ruby_book).to_param,
:book_loan => {:person_id => 1,
:book_id =>
books(:dreaming_book).id}}
end
end
BookLoanを文字列に変換できません
assert_difference(books(:ruby_book).book_loans,:count, 1)
NoMethodError:未定義のメソッド'book_loans' for#
assert_difference('Book.book_loans.count', +1)
Procを文字列に変換できません
assert_difference( lambda{books(:ruby_book).book_loans.count}, :call, 1 )