それじゃあ、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
さて、どうしたもんかな...