Writing Faster Tests by Bypassing Rails

Another way to run tests without loading the entire Rails framework is to write tests that don’t require the entire Rails framework. That sounds crazy, I know, since you’re writing a Rails application. Bear with me.

The tests you’ve written so far mostly fall into five groups:

  • End-to-end tests. These tests require the entire Rails stack since you’re testing the entire stack.

  • Tests that use only ActiveRecord and need the database. Right now this group includes tests for ActiveRecord finder methods and your action object tests that save to the database.

  • Request tests that require ActionPack and may or may not require ActiveRecord and may or may not touch the database, depending on how they’re stubbed.

Get Rails 5 Test Prescriptions 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.