C# 単体テスト 基本

こんにちは。レモンティーです。

今回は単体テストについてです。

色々ググったりしていると
自動テストっていう言葉をよく見かけますよね。
しかし、そもそも単体テスト自体の知識が皆無だと
自動化以前の問題です。

そこで今回はVisualStudioで
とてもシンプルな単体テストをつくって試してみます。

テストプロジェクトの作成

↓のように、コンソールアプリの
Class1というクラスがSumメソッドを持っています。
今回はこのメソッドのテストをつくってみます。
f:id:sawalemontea:20180513171108p:plain

右クリック>単体テストの作成
を選びます。
f:id:sawalemontea:20180513171408p:plain

すると↓のような画面がでてきます。
今回はそのままOKを押します。
f:id:sawalemontea:20180513171507p:plain

これでテストプロジェクトが作成されます。
f:id:sawalemontea:20180513171654p:plain

テストを書く

では単純なテストを書いてみます。

        [TestMethod()]
        public void SumTest()
        {
            //arrange
            var c = new Class1();
            var a = 1;
            var b = 2;
            var expected = 3;
            
            //act
            var actual = c.Sum(a, b);
            
            //assert
            Assert.AreEqual(expected,actual);
        }

公式ではコメントで3パートに区切られていまして
arrangeで引数や予想される結果の設定
actで実際の実行結果を取得
assertで「予想される出力」と「実際の結果」が等しいか判定
となっています。(AAAパターンと呼ばれています。)

公式↓
単体テストの基本

テスト実行

書けたらあとは実行してみるだけです。

右クリック>テストの実行
を選択します。
f:id:sawalemontea:20180513172414p:plain

するとテストが実行され、
テストエクスプローラが表示されます。
テストの結果はここに表示されます。
f:id:sawalemontea:20180513172801p:plain

成功となっているので、無事1+2は3になったようです。

これで様々な引数に対してメソッドが正しく動作するか試すことができます。
ループでAssert.AreEqualを何パターンも実行した場合は
全て成功した場合にテスト成功となります。


今回はこれでおしまいです。


www.sawalemontea.com