私には関係があります: Transaction belongs_to Post
(has_many)
そして、私はこの見解を持っています:
# /app/views/transactions/index.html.haml
%h3 Transactions
%table
%tr
%th Item
%th Description
%th Money
- @transactions.each do |transaction|
%tr
%td= transaction.description
%td= number_to_currency(transaction.money)
%td= link_to transaction.post.title, transaction.post.link # (!)
最後の行がない場合は、次のようにテストします。
before(:each) do
assign(:transactions, [
stub_model(Transaction,
{ description: "Posted", money: 9.99 }
),
stub_model(Transaction,
{ description: "Posted", money: 9.99 }
)
])
end
it "renders a list of transactions" do
render
assert_select "tr>th", :text => "Description"
assert_select "tr>th", :text => "Money"
assert_select "tr>td", :text => "Posted", :count => 2
assert_select "tr>td", :text => number_to_currency(9.99).to_s, :count => 2
end
しかし、それが属する投稿の情報を表示するビューの最後の行をテストする方法がわかりません。
について読んだstub_chain
ことがありますが、そこにモデル全体をスタブ化する方法がわかりません。
最初に Post をスタブ化し、次にスタブ化されたトランザクションに post_id を割り当てようとしましたが、どちらも機能しませんでした..
または、カピバラレベルでテストする必要がありますか?