elle
2009-Apr-20 03:13 UTC
test:integration Expected response to be a <:redirect>, but was <404>
Hello, I''m trying to write some tests and I get a failure error on one test, which I am not sure why or where is my mistake. In my test/integration/product_test.rb I have: require ''test_helper'' class ProductTest < ActionController::IntegrationTest fixtures :all test "product_administartion_by_admin" do category = Category.create(:name => ''Parts'') quentin = new_session_as(:quentin) product = quentin.add_product :product => { :title => ''Clip'', :category_id => category.id, :sku => 54321, :desctription => ''some text'', :price => 8.71 } end private module ProductTestDSL attr_writer :name def add_product(parameters) post "/product/create", parameters assert_response :redirect follow_redirect! assert_response :success assert_template "/product/show" return Product.find_by_title(parameters[:product][:title]) end end def new_session_as(name) open_session do |session| session.extend(ProductTestDSL) session.name = name yield session if block_given? end end end ------------------------------------ The error I get is: 1) Failure: test_product_administartion_by_admin(ProductTest) [/test/integration/product_test.rb:26:in `add_product'' /test/integration/product_test.rb:10:in `test_product_administartion_by_admin'']: Expected response to be a <:redirect>, but was <404> 1 tests, 1 assertions, 1 failures, 0 errors rake aborted! ------------------------------------ Looking around -- someone had a problem that the new object was not created or saved. One of the tests in products_controller_test.rb has no problem creating a new product. What am I missing? TIA, Elle --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
elle
2009-Apr-20 09:37 UTC
Re: test:integration Expected response to be a <:redirect>, but was <404>
Changing add_product method to this passes without failure. I''ve noticed before that I don''t use urls with /show anymore -- therefore eliminated it from the method. What I wanted to ask is: is this code good enough? or am I missing something important? TIA def add_product(parameters) category = Category.find(:all).first get ''products/new'' assert_response :success assert_template "products/new.html.erb" assert_tag :tag => ''option'', :attributes => { :value => category.id } post ''products/create'', parameters assert_response :redirect follow_redirect! assert_response :success assert_template "products/show.html.erb" return Product.find_by_title(parameters[:product][:title]) end --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---