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