GivenWhenThe

provides Spocksyntax in Kotlin with JUnit and Strikt-assertions

Dsl

A Dsl is provided so Testcode can look like this

class ShowcaseTest : GivenWhenThenTest(
    scenario(
        description {
            "expect ${data.expectedWinner} to win when ${data.first} defending ${data.second}"
        },
        `when` {
            data.first defend data.second
        },
        then {
            expectThat(actual)
                .isEqualTo(data.expectedWinner)
        },
        where(
            data( Rock,     Rock,     expectedWinner = null     ),
            data( Rock,     Scissors, expectedWinner = Rock     ),
            data( Rock,     Paper,    expectedWinner = Paper    ),
            data( Scissors, Scissors, expectedWinner = null     ),
            data( Scissors, Paper,    expectedWinner = Scissors ),
            data( Scissors, Rock,     expectedWinner = Rock     ),
            data( Paper,    Paper,    expectedWinner = null     ),
            data( Paper,    Rock,     expectedWinner = Paper    ),
            data( Paper,    Scissors, expectedWinner = Scissors )
        )
    )
)

The Dsl is inspired by Spock. What makes Spock stand out from the crowd is its beautiful and highly expressive specification language.

GitHub

View Github