F#のコードをNaturalSpecでテストする

NaturalSpecでも動きました。これもResharperを使っていると簡単。

  1. NaturalSpec.dllとnunit.framework.dllに参照を通す
  2. ソリューションかプロジェクトを選んで「Run Unit Tests」

次のようなテストコードが書けます。かっこいい!んだけどどう動いているのか理解できていません。


module Study

open NaturalSpec

[<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

let rec fac = function

0 -> 1
x -> x * fac (x - 1)

let factorial x =
printMethod x /// prints the method name via reflection
fac x

[<Scenario>]
let ``When calculating factorial of 5 it should equal 120``() =
Given 5
|> When calculating factorial
|> It should equal 120
|> Verify

NaturalSpecはF#で書かれているのでNaturalSpecのコードを読むのが参考になりそうです。
(ちなみ上のコードですが、色づけがC#用のものなのでおかしくなっていますね)