Agile Event Session

FAST: An Innovative Way to Scale

This video content is for Agile Alliance members only

If you’re already an active member, please log in now.

To view this content, and gain access to many more valuable resources, conference discounts, and invitations to exclusive networking and learning events, please consider becoming an Agile Alliance member.

Abstract/Description

If you’re familiar with unit testing, you’re probably also familiar with the brittleness and excessive boilerplate that often results from overuse of mock objects and other test doubles. They’re a great tool, sure, but they also make tests hard to read and code hard to refactor. Luckily, there’s another way to do it: nullable infrastructure. Nullable infrastructure is part of James Shore’s “Testing Without Mocks” pattern language. It’s a drop-in replacement for normal test doubles that allows you to move from isolated interaction-based tests to sociable state-based tests. The end result is tests that are fast, reliable, and low-maintenance. In this hands-on workshop, we’ll use a simple Node.js microservice client to demonstrate how nullable infrastructure works. We’ll start with traditional mock-based tests and modify them to use nullable infrastructure instead. Then we’ll explore how to create your own nullable infrastructure from scratch. Along the way, you’ll learn the tradeoffs involved and come to your own conclusions about when to use mocks and when to use nullable infrastructure. This is a highly technical workshop intended for programmers. Be sure to read the following prerequisites and come prepared to code! **Prerequisites and Advance Setup** This is a hands-on coding workshop. You’ll be programming in JavaScript and Node.js and running commands from the command-line. Prior experience with unit tests and mock objects is highly recommended. Familiarity with JavaScript, Node.js, Mocha, Chai, command-line basics, and microservice basics is also recommended. Please bring a laptop prepared in advance with the following: 1. Install Node.js 2. Install Git 3. Install your favorite JavaScript code editor 4. Clone the example repository: `git clone https://github.com/jamesshore/agile-2022.git` (Note: this repo will not be available until the conference begins.) 5. Read the README and run the build

Additional Resources

Speaker(s) may be willing to present this session at local group meetings and other events.

Agile2022
Workshop
Practicing

More Agile Event Session Videos

Storytelling through the product lens 
Storytelling is a powerful way to engage, inspire, teach and learn so naturally plays a fundamental part in the world of product. At all levels of the business, regardless of role, or the life cycle of a product, product people are telling stories…
You Need a Product Office
We all understand projects. They start and they end. Hopefully close to when we hoped they would and for about the same cost. But products work differently and Agile is all about product delivery. The Product Office helps us define, build and govern …
Storytelling through the product lens 
Storytelling is a powerful way to engage, inspire, teach and learn so naturally plays a fundamental part in the world of product. At all levels of the business, regardless of role, or the life cycle of a product, product people are telling stories…
You Need a Product Office
We all understand projects. They start and they end. Hopefully close to when we hoped they would and for about the same cost. But products work differently and Agile is all about product delivery. The Product Office helps us define, build and govern …

Have a comment? Join the conversation

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

IMPORTANT: We have transitioned to a new membership platform. If you have not already done so, you will need to set up an account on the new platform to establish your user profile.

When you see the login screen, choose “Set up Account” and follow the prompts to create your new account. You can choose to log in using your social credentials for either Google or Linkedin (recommended), or you can set up your account using an email address.

Not yet a member? Sign up now