Test params

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,

Thanks all. Cucumber sounds very promising. I will pick up a book on BDD.