Spock is really making writing tests fun, instead of a chore.
@Unroll("toClass '#javaName' should be #expectedClass") def "toClass tests"() { expect: PlasticInternalUtils.toClass(getClass().classLoader, javaName) == expectedClass where: javaName | expectedClass "java.lang.String" | String.class "java.lang.Integer[]" | Integer[].class "java.lang.Long[][]" | Long[][].class "void" | void.class "int" | int.class "int[]" | int[].class "float[][]" | float[][].class }
This combines lots of things I've seen before in TestNG, but nicer; just more readable ... and the @Unroll annotation (which guides Spock on how to report the test execution) is really handy, especially when things go wrong. It's just a slick overall package.