F#用UnitTestframework "FsUnit"に触れてみました

昨日はNUnitを用いたテストコードをF#で記述する方法を紹介しました。
調べてみたことろ、F#にはFsUnitと呼ばれるテストフレームワークがあるようです。

環境

を利用しております。その他の環境では確認しておりませんのでご了承下さい。

FsUnit

CodePlexの以下のページより、ソースコードをダウンロードします。

また、Google codeにはビルド済みバイナリが置いてありますが、私の環境ではビルド時にエラーが出て、うまく動作しませんでした。


ダウンロードしたソースコードをF#ライブラリとしてビルドします。
FsUnitはNUnitを利用するため、参照設定を忘れないようにして下さい。
このとき、構成を[Release]にしておきましょう。

ビルドに成功すれば、DLLファイルが作成されるはずなので、前回と同じように、テストプログラムから、

を参照に追加しておきましょう。

テストコードは、以下のようになります。

open System
open NUnit.Framework
open FsUnit

let greet str = sprintf "hello, %s" str

[<TestFixture>]
type MyTest() =

  [<Test>]
  member x.TestGreet () =
    greet "foo" |> should equal "hello, foo"

Assert.AreEqual("hello, foo", greet "foo")と書いていた部分がスッキリし、文章としても読みやすくなったと思います。
FsUnitは他にも色々な工夫がされているようで、なかなか面白いです。