Our thoughts, knowledge, insights and opinions

How to make working with Specs2 much easier

Hi. Specs2 is one of the most popular Scala libraries for testing, but definitely not a simple one. That’s why I decided to create a blog post with a few tricks how to make working with Specs2 much easier. The examples are 100% artificial, but their purpose is only to demonstrate capabilities of Specs2.

Basic example

Ok, so let’s start with a basic example

Pass data into the tests

We can do this in (at least) two ways. Just pass the data as regular variables

or pass them as a scope

The first option is very straightforward and works well for small tests, but is impractical for bigger ones or when you want to (for some reason) share the values.

Implement custom Setup and Teardown

Now let’s say that we need to perform some important operations before and after every single test case. How can we achieve that? It’s simple. We can use Contexts again.

First we need to create an helper for local setup and Teardown. We can do it like this

now we can do

Implement custom Setup and Teardown for all test cases

The example above works good but only for single test cases, now lets write something for the whole test suite.

Random thoughts

  1. Watch out for static configuration and methods, they might cause tests to break from time to time.
  2. When using Specs2 try not to mix sub-packages. Some mixins from org.specs2.mutable might not work those from org.specs2.specification and so one. Even worse they might just fail silently.
  3. As you probably noticed already Contexts can be classes, traits and objects.
You like this post? Want to stay updated? Follow us on Twitter or subscribe to our Feed.


by Patryk Jażdżewski
March 27, 2015
Tags : Scala Specs2 Testing


comments powered by Disqus