NuGet Project Uncovered: NaturalSpec

February 13th, 2012

If you are coming to this series of posts for the first time you might check out my introductory post for a little context.

NaturalSpec is a BDD framework written in F#. This one is interesting due to F#’s concise nature and can give you very readable tests/specs.

The below sample was pulled from the github readme.

[<Scenario>]
let ``When removing an element from a list it should not contain the element``() =
  Given [1;2;3;4;5]                 // "Arrange" test context
    |> When removing 3              // "Act"
    |> It shouldn't contain 3       // "Assert"
    |> It should contain 4          // another assertion
    |> It should have (length 4)    // Assertion for length
    |> It shouldn't have duplicates // Tests if the context contains duplicates
    |> Verify                       // Verify scenario

It says you don’t have to learn F# to use it. Which I’d argue you may not have to learn F# as deep as you might to be able to code a production product in it, but you will definitely benefit from learning some as you go. You will also spend a bit of time learning the DSL that this project has created.

Regardless, this project has enough interest factor for me to play around with someday.

Comments are closed.