Integration Tests with Capybara
In the previous chapter, we used Rails testing facilities to ensure a PDF was sent back to the client. To guarantee our project works as a contact form, we should create an actual form, submit it to the appropriate endpoint, and verify the email was sent. Those kind of tests are particularly hard to write using only the Rails testing tools. Most of the time, we end up writing direct requests to endpoints:
| post "/contact_form", contact_form: |
| { email: "jose@example.com", message: "hello"} |
Writing a test using post and explicit parameters is fine for some scenarios, particularly for APIs, but it falls flat when testing a contact-form workflow. For example, how do we guarantee there’s a Submit button on ...
Get Crafting Rails 4 Applications, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.