Hi,
In my RESTful implementation, :new shows a form for @link . When a
user clicks on Create, the value of @link is posted to :create through
params. How do I test the value of params and that :create actually
uses these value to create a new link.
Right now I test :create by by using a link fixture but I want to
actually use the value of params passed in through :new. I suspect
that an integration test is needed but how can I do this?
Thanks.
Vincent.
What’s your test suite of choice? Using plain old TestUnit, try
something like this:
def test_link_creates_correctly
post :create, :link => {:name => ‘Contact Us’, :href => ‘/
contact’, :title => ‘Contact Us’}
assert Link.find(:first, :conditions => {:name => ‘Contact
Us’, :href => ‘/contact’, :title => ‘Contact Us’})
end
This will test that the record was created as you wish. Honestly
though, I don’t test for this, and I’m more paranoid than most. If
you’re passing params[:link] to your Link.new method in the create
action, that’s good enough. Since I stub out most database
interaction with Mocha, I actually just test that Link.new was
called with the right parameters.
If you want to go nuts on controller tests, I have a pretty detailed
article about it with more to come:
And if you have any questions, contact me through my blog or twitter
(@kconrails) and I’ll be glad to help!
Jaime
Learn by Doing wrote:
Hi,
In my RESTful implementation, :new shows a form for @link . When a
user clicks on Create, the value of @link is posted to :create through
params. How do I test the value of params and that :create actually
uses these value to create a new link.
Right now I test :create by by using a link fixture but I want to
actually use the value of params passed in through :new. I suspect
that an integration test is needed but how can I do this?
Use Cucumber. It makes this kind of thing pretty easy.
Thanks.
Vincent.
Best,
–Â
Marnen Laibow-Koser
http://www.marnen.org
[email protected]
Thanks all. Cucumber sounds very promising. I will pick up a book on
BDD.