Building Rails ActionDispatch::SystemTestCase Framework
summary
Rails 5.1 ships a concrete system test integration: ActionDispatch::SystemTestCase wires Capybara into Rails so scaffolds include Capybara + Selenium + Chrome by default, driven by a single driven_by call, runs with rails test:system, and captures screenshots on failure. The implementation fixes threaded DB transaction visibility by forcing shared connections (with help from Aaron Patterson and Matthew Draper), and the feature lands after a three‑year promise and about six months of focused work.
AI-written summary · about
chapters (34)
- 0:00Intro
- 1:32IS DEAD
- 2:063 years later...
- 2:59Tests your application as a whole system
- 6:37Why did it take 3 years?
- 7:16Integration tests were slowww....
- 8:29Basecamp
- 10:22Guiding Principles
- 11:10Optimize for programmer happiness
- 11:52There is zero configuration required to use Capybara with Rails 5.1
- 12:49Value integrated systems
- 13:17Rails as a whole now addresses system testing
- 13:37Progress over stability
- 14:13When system tests were merged there were a few known bugs
- 14:53Implementation & Architecture
- 15:14Config defaults: Why Selenium?
- 15:57Selenium doesn't require system installs
- 16:19Can see the tests running in the browser
- 16:42Better for beginners learning Rails and Capybara
- 17:28Config defaults: Why Chrome?
- 17:45For awhile, Firefox was broken with Selenium
- 18:58Config defaults: Failure Screenshots
- 20:14Database Cleaner not required
- 20:56The first connection can't see the data inserted on the second connection
- 22:17Test transaction opens a connection
- 22:49Plumbing
- 24:40Open Source Features
- 24:56Public Work
- 25:38Feels like everyone is judging you
- 29:00Manage expectations
- 29:33Know who you are building the feature for
- 30:13Be open to change
- 30:57Open source doesn't work without contributors
- 31:24Build a foundation for others to work off of
related talks
36mBuilding the Rails ActionDispatch::SystemTestCase framework
01h 19mBDD and Acceptance Testing with RSpec & Capybara
43mSecrets of Testing Rails 5 apps
31mQuick and easy browser testing using RSpec and Rails 5.1
52mStory Driven Development: The Next Generation of Rails Functional Testing
37mSecrets of Testing Rails 5 Apps
31mSecrets of Testing Rails 5 Apps
49mFront End Testing Frontier
