たとえば、RailsアプリケーションにはCustomerクラスとCardクラスの2つのクラスがあります。 CustomerクラスはCardクラスで構成されています。つまり、顧客にはカードがあります。RSpecを使用して合成オブジェクトのプロパティの設定をテストするにはどうすればよいですか?
次に、POSTで渡されたparamsを使用してCustomerの新しいインスタンスを初期化し(内部的にCardの新しいインスタンスを作成する)do_somethingアクションが定義されたRailsコントローラを作成しました。
次のようにカードの数は、その後設定されている:
class ShopController < ApplicationController
def do_something
customer = Customer.new params
customer.card.number = params[:card_number]
...
end
end
RSpecのテストでテストカード番号のこの割り当てはどのように?理想的には、 'should_receive_chain'が存在する場合、次のように書くことができます。
describe MyController do
describe "POST 'do_something'" do
it "should set card number"
params = { :card_number => '1234' }
card_mock.should_receive_chain(:card, :number).with '1234'
post :do_something
end
end
end
アイデアはありますか?おそらく、それが簡単にテストできないという事実はコードのにおいであり、おそらく私はCustomerクラスでセッターメソッドを作成するべきでしょうか?