Pregunta

Trying to test some routing with rspec and factories. What would be the best way to modify an existing factory multiple times inside the spec test?

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
¿Fue útil?

Solución

You basically have two options. If you're just modifying a single param between test, it might be easiest just to do something like:

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

Otherwise, you could set up a factory girl sequence and do a fresh FactoryGirl.create in each spec.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top