Test-Driven Development with Rails Studio
with Jim Weirich and Joe O'Brien
Testing is the cornerstone of building high-quality software, but it doesn't have to bog you down. Rather, testing can actually help you deliver new features quicker by eliminating debugging time, minimizing re-work, and reducing the cost (and fear!) of changing existing code.
Rails gives you basic tools for starting to write tests, but how do you use these tools (and others) on a daily basis to build high-quality web applications? Let us show you how!
In this Studio, you'll learn how to do test-driven development by actually doing it. We'll help you get oriented in the testing mindset with a solid foundation of practices, and then quickly build on those with advanced techniques and tools. You'll experience a powerful synergy between testing and design that helps you write better software, faster!
“Pragmatic Studios always rock! When you offered TDD as an option, I knew it would be an amazingly valuable time. Jim and Joe were fantastic as was networking with peers. Prag Studios have the best format.”
—Jae Hess
Who Teaches the Studio?
Jim Weirich and Joe O'Brien. In this Studio you'll learn directly from two renowned experts on Ruby, Rails, and test-driven development.
Jim Weirich has been active in the software development world for over twenty-five years. Jim is very active in the Ruby community and has contributed to several Ruby projects including the Rake build system, the FlexMock mocking library, and the RubyGems package management software. Jim is the Chief Scientist for EdgeCase, LLC.
Joe O'Brien has spent his career as a developer, project manager, and everything in between. Before helping found EdgeCase, LLC, Joe was a developer with ThoughtWorks and spent much of his time working with large J2EE and .NET systems for Fortune 500 companies. He also co-founded the Columbus Ruby Brigade and helped organize the Chicago Area Ruby Users Group.
Who’s It For?
Web application developers. This Studio is taught by programmers for programmers who have some experience with Rails and a working knowledge of Ruby.
This Studio is right for you if:
- You have worked on at least one Rails application
- You are comfortable in Ruby
- You've struggled with testing in Rails including when to start, how to do it "the right way", and how to continue writing tests when the real world interferes
- You've wondered what all the fuss is about mocking
- You're ready to take your current testing practices to the next level!
This Studio is not an introduction to Rails or Ruby. If you're not quite comfortable with Rails or Ruby, then consider attending the Ruby on Rails or Ruby Studio.
What Will I Learn?
Testing Techniques and Tools You Can Apply Immediately
The FoundationsA solid foundation of practices will help you get started writing tests and keep writing (and running!) them when the pressure is on.
- Write good tests with Test::Unit—assertions, test cases, test fixtures, and validation vs. verification
- Code with confidence in the Red/Green/Refactor cycle
- Capitalize on the testing investment through continuous integration
Rails strives to make testing easy, but it assumes a certain style and vocabulary. We'll show you what works best for us.
- Test Rails models, views, and controllers
- Validate the use cases of your application with integration tests that read like software requirements
- Identify the boundaries of unit, functional, and integration tests
- Learn time-saving helper methods and special assertions that come with Rails, and how to write your own
- Create fixtures of test data to keep tests decoupled and repeatable, and learn how to avoid fixture pitfalls
- Automate testing chores with Rake for better repeatability
Once you're comfortable with the basics, it's time to learn the advanced techniques that help you write more effective tests.
- Isolate tests through mocking and stubbing for faster test cycles and improved application designs
- Refactor tests to remove dependencies that slow down the testing cycle
- Track and measure test effectiveness through code coverage and path coverage using Rcov
RSpec and Behavior-Driven DevelopmentHow we are testing is just as important as what we're testing, and behavior-driven development has become very popular in the Rails community. Don't get left behind!
- Learn how to install, configure, and use RSpec for behavior-driven development
- Create high-value and more maintainable tests that concentrate on behavior rather than state
Writing Rails unit, functional, and integration tests is a good start, but it's not the end of the story.
- Learn how to use Selenium and Watir for acceptance testing through the eyes of the browser
- More tools, tips, and techniques used by the pros
What's a Studio Like?
Interactive Learning. You'll learn in a significantly different way in a Studio than by reading through the books. Attending a Studio complements what you may have read, but in a hands-on, collaborative environment where you'll:
- get your questions answered by the experts and your peers
- learn through hands-on programming exercises
- discuss up-to-date topics, tips, and tricks
- discover new techniques in live coding sessions
- reinforce the concepts you've learned in the books
We think Studio offers the best developer training around. But don't take our word for it. Just ask our alumni. Check out their reviews and applications they've built! The Studio experience continues after the Studio with our members-only alumni mailing list.
“The strictly guarded Alumni group is one of the best programming resources I have ever seen.”
What Should I Bring?
You and Your Laptop. It wouldn't be a programming workshop if you didn't walk away having written some code. You'll be most productive on the laptop you use regularly. (On average, 60% of attendees bring Mac OS X, 30% bring Windows, and 10% bring Linux.)
A few weeks before the Studio, we'll send out detailed instructions for installing everything you'll need. During the Studio, you'll get hands-on experience working through prepared exercises, and experimenting on your own, too.
