0

rspec と factory でいくつかのルーティングをテストしようとしています。仕様テスト内で既存のファクトリを複数回変更する最良の方法は何ですか?

require "spec_helper"

describe gameController do
  describe "routing" do

    game = FactoryGirl.create(:game)

    it "routes to #show" do
      get("/game/1").should route_to("game#show", :id => "1")
    end

    it "routes to #show" do
      # need to modify 1 param of the factory.. how best to do this?
      get("/game/1").should route_to("game#show", :id => "1")
    end

  end
end
4

1 に答える 1

0

基本的に 2 つのオプションがあります。テスト間で単一のパラメーターを変更するだけの場合は、次のようにするのが最も簡単な場合があります。

before(:each) do
  game = FactoryGirl.create(:game)
end

it "does something" do
  get("/game/1").should route_to("game#show", :id => "1")
end

it "does something else" do
  game.update_attributes(:param => "value")
  get("/game/1").should route_to("game#show", :id => "1")
end

それ以外の場合は、ファクトリー ガール シーケンスをセットアップし、各スペックで新しい FactoryGirl.create を実行できます。

于 2013-10-11T14:59:30.017 に答える