C#で単体テストをする方法。
動作環境
- windows11
- VisualStudio 2019 Professional
- .NET Framework
プロジェクトの作成
まずは新しいプロジェクトを作成する
今回はWindowsFormで作る
新しいプロジェクトが作成できたら
ソリューションのところを右クリックして
追加→新しいプロジェクトを選択
単体テストプロジェクトを選択
新しいプロジェクトを作成する
作成できたら作成したプロジェクトの参照を右クリックして参照の追加を選択
最初に作ったプロジェクトを追加する
ここで参照のところに最初に作ったプロジェクトがあればOK
黄色い▲マークが付いていたらダメ
最初のプロジェクトとテストプロジェクトのターゲットフレームワークが異なっている等の原因が考えられる
テストの作成
最初のプロジェクトにCalculation.csを追加し、次のコードを追加する。
namespace hogeApp
{
public static class Calculation
{
public static int Sum(int a, int b)
{
return a + b;
}
}
}
テストをするほどの関数ではないが引数aとbの合計を返す関数を作成
テストプロジェクトのUnitTest1.csに先ほどのSum()関数のテストコードを書いていく
namespace hogeAppTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
//テストしたい関数を呼び出して返り値を格納
int sum = hogeApp.Calculation.Sum(2,5);
//(想定した値, 実際の返り値)を引数に指定
Assert.AreEqual(7,sum);
}
}
}
ここまで記述できたら画面左にあるテストエクスプローラーからテストを実行する
※テストエクスプローラーが無い場合は画面上部のテストからテストエクスプローラーを追加できる
2+5=7で想定した値が返ってきているので
テストが成功している
次は想定した値を違う値(100)とかにしてテストを実行してみる
当然想定している値ではないのでテストが失敗している
どのような失敗をしているのかはエラーになっているテストをクリックしていくとわかる
メッセージのところに
Assert.AreEqual に失敗しました。<100> が必要ですが、<7> が指定されました。
とあるので詳細がわかる
これでテストプロジェクトが作成できたので、
ここからテストコードを追加していけばOK