それじゃあ、specを書こうか。(2) ~ リレーションを考える
で。
RoleオブジェクトはUserオブジェクトと関連をもっている訳ですわ。
で、それをテストしないといけない訳ですわ。
なんで、書いてみる。
フィクスチャは、「[http://d.hatena.ne.jp/lov2much/20090225/1235524308:title=fugafugaにrole_requirementをセットアップ。」に。
# spec/models/role_spec.rb + describe "Role has many Users" do + before do + @owner_role = roles(:owner_role) + end + + it "'owner_role'" do + @owner_role.should have_at_least(1).users + end + end
まあ、これは良いよ。
Role.usersを読んでるだけだから。
じゃあ、Role.usersに追加する場合。
# spec/models/role_spec.rb + describe "increments Role.users#count" do + before do + @role = roles(:registered_user_role) + end + + it "registered_user_role" do + lambda do + @role.users.create( :email => "who@example.com", + :password => "hogehoge", + :password_confirmation => "hogehoge") + end.should change(User, :count).by(1) + end + end
う〜ん、これだと、なんか、使い回しが悪そうだよねぇ...
多分、@role.users.create(~)って、これから、何度もすると思うんだ。
なんで、ちょっと考えた。
が、考えが及ばないwww
さて、どうしたもんかな...