F#でNUnitテストコードを記述する方法1
F#でNUnitテストコードを記述する方法
F#とNUnitで単体テストを記述する方法を手探りで調べました。
テスト対象プログラム
テストされるプログラム(F#ライブラリ)をTestedProgramとします。
[ファイル]->[新規作成]->[プロジェクト]->[他の言語]->[Visual F#]->[F# ライブラリ]
を選択し、名前を[TestedProgram]として下さい。
被テストコードの記述
Module1.fsを開き、デフォルトで入力されている、
module Module1
を削除して下記を入力して下さい。
namespace TestedNamespace module TestedModule= let square x = x * x let squareF (x : int) = (float x) * (float x) let rec qsort = function | [] -> [] | pivot :: rest -> let is_less x = x < pivot in let left, right = List.partition is_less rest in qsort left @ [pivot] @ qsort right
- int -> int の squareメソッド
- int -> float の squareFメソッド
- a' list -> a' list の qsortメソッド
上記3つのメソッドに対して、NUnitテストコードを書いて行きます。
長くなるので、このエントリでは準備のみ記述します。
今回はテストコードの書き方を検証するので、この時点で上記プログラムをビルドし、F# Interactiveにおいて正常に動作することを確認しておいてください。
F# Interactiveは[表示]->[その他のウィンドウ]->[F# Interactive]
を選択することで起動できます。
テストプログラム
テストするプログラム(F#ライブラリ)をTestingProgramとします。
[ファイル]->[追加]->[新しいプロジェクト]->[他の言語]->[Visual F#]->[F# ライブラリ]
を選択し、名前を[TestingProgram]として下さい。
テスト対象プログラムの選択
ソリューションエクスプローラー内のTestingProgramの[参照設定]を右クリックし、
[参照の追加]よりテスト対象プログラムを選択します。
今回は当然、[Projects]->[TestedProgram]ですね。
NUnitFrameworkへの参照の追加
TestingProgramの[参照設定]を右クリックし、[参照の追加]->[Assemblies]->[Extensions]->[nunit.framework]を追加します。
テストコードの記述
TestingProgram内のModule1.fsを開き、デフォルトで入力されている、
module Module1
を削除して下記を入力して下さい。
module TestingNamespace.TestingModule open System open NUnit.Framework open TestedNamespace.TestedModule [<TestFixture>] type MyTest() = [<Test;Description("example description")>] member x.TestSquare1 () = Assert.AreEqual (4, square 2)
この時点で、squareメソッドに対するテストが一つ書けました。