I'm new to testing and documentation for the built-in Rails testing seems scarce so I'll write down what I learn in the process… there may be — and probably are — better ways to do this.
In a functional test you test the controller. A controller is responsible for the incoming requests and the response with a rendered view. If you want to test the creation of an object you'll need a way to fill the form and send the data to the controller.
Imagine the following functional test to create new articles for our blog (example in Rails 3):
As this test is in the articles_controller_test.rb file Rails knows to call the article create action with a POST request. The controller will handle the request and will (normally) render or redirect to a new page with a flash message, this we can test.
The first line is key here. It sends the parameters in the form (well, the ones you choose) to the controller. The second line assigns the article instance variable. The next lines are some assertions I added to test if the request succeeded, add at will.
This post is open source. Did you spot a mistake? Ideas for improvements? Contribute to this post via Github. Thank you!