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
-~----------~----~----~----~------~----~------~--~---