ScalaTest is a popular open source testing tool in the Scala ecosystem. In ScalaTest 3.0’s new async testing styles, tests have a result type of Future[Assertion]. Instead of blocking until a future completes, then performing assertions on the result, you map assertions onto the future and return the resulting Future[Assertion] to ScalaTest. The test will complete asynchronously when the Future[Assertion] completes. This way of testing requires a different mindset.
This talk walks you through the design, show you how to use it, and suggest best practices for async testing on both the JVM and Scala.js.