rogeriochaves/elm-test-bdd-style

BDD-style matchers for elm-test


License
MIT
Install
elm-package install rogeriochaves/elm-test-bdd-style 1.1.0

Documentation

elm-test-bdd-style Build Status

BDD style matchers on top of elm-test. It's a very simple syntax sugar.

Getting started

First, follow the getting started steps from the elm-test package.

Then, install elm-test-bdd-style:

elm package install rogeriochaves/elm-test-bdd-style

To use it, just import it on your test:

import ElmTestBDDStyle exposing (..)

Usage example

-- Example.elm
module Example exposing (..)

import Test exposing (..)
import Expect exposing (..)
import Fuzz exposing (..)
import ElmTestBDDStyle exposing (..)


tests : Test
tests =
    describe "Example Text"
        [ it "does math correctly" <|
            expect (1 + 1) to equal 2
        , it "does not miscalculate things" <|
            expect (2 + 2) to notEqual 5
        , it "exemplifies more complex test cases" <|
            let
                expression =
                    2 + 2
            in
                expect expression to equal 4
        , it "compares two numbers" <|
            expect (10 > 5) toBe true "math should work"
        , it "compares two numbers" <|
            expect 10 toBe greaterThan 5
        , fuzz (list int) "ends up with the same list when reversing twice" <|
            \fuzzList ->
                expect (List.reverse (List.reverse fuzzList)) to equal fuzzList
        ]

Extending it

You can use ktonon/elm-test-exta for extra matchers such as match and contain.

You may also write your own matchers and other functions to make your tests as idiomatic as you want. For some examples, check out the tests/BetterSpecs.elm file on this project to see a reimplementation of betterspecs.org in Elm.