Justin Searls
Justin Searls has two professional passions: writing great software and sharing what he’s learned in order to help others write even greater software. He recently co-founded a new software studio called Test Double, where he’s currently helping clients build well-crafted user experiences for the web.
Website
Sessions
Budgeting Reality: a New Approach to Mock Objects
Wednesday 11.10 - 12.00 in: Grinding the Crack
Some say "mocks suck," because they reduce a test's realism and with it the confidence that the code being tested actually works. Others use mocks to demarcate the outer boundary of an application, guarding the test from expensive or external dependencies (e.g. by faking a database or network resource). Still others see mocks as a "setup of last resort", using them only to mitigate the pain of hard-to-test code. Finally, some developers mock out every collaborator in every test, and their rationale is probably the least understood of them all!
This talk will serve as an opinionated (if broad-stroke) survey of the different ways people use test doubles (be they mocks, fakes, stubs, or spies). Our goal will be to establish a more sophisticated means of communicating on the topic. We'll discuss the pros & cons of the different approaches toward mocking, the smells of test double abuse, and the lessons I took away from writing my own test double library.
Tags: Mastery
TDD your Javascript
Tuesday 8.30 - 16.30 in: Honey Badger
As the world moves to rich clients on the web, it is easy to treat javascript as "just a quick scripting language." But the language of the web deserves the same respect as any other application-development language. And this means that we should not just write tests, but should also harness the power of test-driven development.
In this full-day workshop, we will dive past a brief overview and look at the tools and techniques for letting our tests truly drive the design of our javascript-based applications. Join Justin Searls in building a real-world client-focused web application using tests to guide us in building maintainable and understandable code.
At the end of the day, you'll be ready to go back to your applications, set up the necessary tooling and start writing tests immediately.