読者です 読者をやめる 読者になる 読者になる

Getting a Good Grasp of F# (仮)

関数型言語F#をもっと楽しみたい

F#のコードをユニットテストで検証する その5 (NUnit)

 Visual Studio 2013 から NUnit を使ってF# コードのユニットテストを行ってみます。(F# のプロジェクトはコンソールアプリケーションのプロジェクトとして作成)

プロジェクトへ必要な Nuget パッケージをインストールします。(記事作成時の NUnit のバージョンは3.5.0)

 Visual Studio 2013 のテストエクスプローラーでユニットテストができるように NUnit 3 Test Adapter for Visual Studio(記事作成時のバージョンは3.5.0)を(F#のプロジェクトが所属する)ソリューションへインストールします。

テストコードの例

  1. module UnitTestingSamples
  2. open NUnit.Framework
  3.  
  4. [<Test>]
  5. let simpleTest() =
  6.     Assert.AreEqual(2.0**10.0, 1024.0)
  7.  
  8. [<TestCase("",      0)>]
  9. [<TestCase("ab",    2)>]
  10. [<TestCase("ABC",   3)>]
  11. [<TestCase("ABCD",  4)>]
  12. [<TestCase("12345", 5)>]
  13. let parameterizedTest(str: string, expected: int) :unit =
  14.     Assert.AreEqual(str.Length, expected)

2行目: NUnit名前空間 NUnit.Framework をインポートします。

4~6行目:Assert.AreEqual を使って値の等値性検査を行います。関数 simpleTest では2の10乗が1024に等しいかどうかを検査しています。

8~14行目:Assert.AreEqual を使って値の等値性検査を行います。関数 parameterizedTest には2つの引数があり、TestCase で指定したテストデータの組み合わせが渡されます。この例では TestCase が5つ置かれているので、関数 parameterizedTest を使ったテストが5回実行されます。

テストエクスプローラーから実行した結果

f:id:pongitsune:20161025145455p:plain