Back To Workshops
Sutton Place - 2 Day Workshop

Monday/Tuesday June 18th & 19th, 09:00-16:00

Writing Programs That Write Tests: Better Testing With Scala

About this Workshop

Writing tests is so... boring. And repetitive. And often, in hindsight, rather ad hoc, and therefore ineffective. We'll learn about property-based testing using ScalaCheck: how it compares to unit testing, when is it better (or worse); learning about different families of invariants and when they are appropriate for your code; how to structure the tests using the main ScalaCheck abstractions, run them, and debug them; and how to test stateful systems. Don't write tests! Write code that will write lots of tests!

Required Knowledge

  • Basic Scala
  • Familiarity with basic unit test techniques

Learning Objectives

Attendees will learn:

  • The differences between property-based testing and traditional unit testing
  • How to recognize the most common kinds of properties and encode them
  • How to structure, or refactor existing tests using ScalaCheck
  • Debugging strategies for tests
  • Testing strategies for stateful systems


Adam Rosien

Adam Rosien is an Associate at Underscore ("The Scala Specialists"), focused on building systems using functional programming. He previously helped various startups in many domains develop back-end systems and implement continuous deployment practices, and also spent five years as a developer at Xerox PARC.

Noel Welsh

Noel is a consultant at Underscore, where he helps companies succeed with Scala. He is an author of "Essential Scala", "Scala with Cats", and "Creative Scala". He believes Strings are pure evil.