On Sun, Apr 6, 2008 at 4:33 PM, Rare <[EMAIL PROTECTED]> wrote: > Hi all, > > I am trying to test that a view file in Rails is being sent a new > empty model (Product.new) in my rspec test, below is my code. I've > tried comparing them with ==, ===, equal, eql none work. I just get an > error (see below code). I guess it's the condition tester (e.g. ==) > that is incorrect, can anyone help? > > Code: > > it "should assign the new product for the view" do > do_get > assigns[:product].should == Product.new > end
Try this in irb: Product.new == Product.new => false This is why what you have is failing. What will work is something like this: it "should assign the new product for the view" do product = Object.new Product.should_receive(:new).and_return(product) do_get assigns[:product].should equal(product) end You can use product = Product.new for the first line, but I'm pretty sure Object.new is cheaper. HTH, David > > Error: > > 'ProductsController handling GET /products/new should assign the new > product for the view' FAILED > expected: #<Product id: nil, name: nil, permalink: nil, description: > nil, price: nil, is_enabled: nil, created_at: nil, updated_at: nil, > manufacturer_id: nil>, > got: #<Product id: nil, name: nil, permalink: nil, description: > nil, price: nil, is_enabled: nil, created_at: nil, updated_at: nil, > manufacturer_id: nil> (using ==) > ./spec/controllers/products_controller_spec.rb:118: > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users