Hey there! We're thoughtbot, a design and development consultancy that brings your digital product ideas to life. We also love to share what we learn.
This coding exercise comes from Upcase, the online learning platform we run. It's part of the Rails Testing Exercises course and is just one small sample of all the great material available on Upcase, so be sure to visit and check out the rest.
Writing tests for classes and models is useful, but eventually you'll want to make sure that all of your classes, views, and configuration are working together correctly. To do this, you'll write an integration test, which focuses on objects working together. These tests are very useful for catching bugs.
In this example, we'll be using Capybara to write an integration test. Capybara allows you to simulate user actions on your site, such as visiting URLs and clicking on links, so that you can go through features the way a user would and verify that the outcome is correct.
This exercise contains a model, controllers, and views which allow users to add and view people. You'll use Capybara to write an integration test which verifies that a user can add a person using the form.
Here are some examples of methods which you may want to use:
# Visit a page
visit root_url
# Fill in a text field
fill_in "Email", with: "[email protected]"
# Click on a link
click_link "About"
# Click on a button
click_button "Save"
# Check for text on the page
expect(page).to have_content("Thank you")
You can find more examples of using Capybara in the documentation.
To start, you'll want to clone and run the setup script for the repo
git clone [email protected]:thoughtbot-upcase-exercises/testing-fundamentals-write-an-integration-test.git
cd testing-fundamentals-write-an-integration-test
bin/setup
- Edit
spec/features/user_creates_person_spec.rb
. - Use Capybara to create a new person.
- Make sure your tests are passing by running
rake
.
Check out the featured solution branch to see the approach we recommend for this exercise.
If you find yourself stuck, be sure to check out the associated Upcase Forum discussion for this exercise to see what other folks have said.
When you've finished the exercise, head on back to the Rails Testing Exercises course to find the next exercise, or explore any of the other great content on Upcase.
testing-fundamentals-write-an-integration-test is Copyright © 2015-2018 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.
This exercise is maintained and funded by thoughtbot, inc.
The names and logos for Upcase and thoughtbot are registered trademarks of thoughtbot, inc.