Visual Studioの機能を使おう 単体テスト編

色々やってると気が付けばEVE関係なくなってますね。。。
今回は作ってみたクラスが妥当であるかを自分でテストコードを入れて実行するための機能を紹介します。

Visual Studio 2015[以下VS15]では次の手順で単体テストを作成することが出来ます。
あ、もちろん無料のCommunity版でも使用できますよ!

クラスを作成したプログラムファイル(デフォルトならProgram.cs)で右クリックし、「単体テストの作成」を選択します。
その際に出力されるウィンドウは特に変更せずにOKしましょう。
OKしたらソリューションエクスプローラにフラスコマークが付いたテストプロジェクトが作成されます。
そこに正しく実行されているか、そうでないかを判別するテストコードを入力し、走らせることができます。

なお、今回テストを行うプログラムはこちらです。

    public class Calcuration
    {
        int Value1;
        int Value2;

        // コンストラクタ
        // 初期値を格納します。
        public Calcuration(int val1,int val2)
        {
            Value1 = val1;
            Value2 = val2;
        }

        // クラス内に格納された2つの値の足し算を実行します。
        public int Additional() => Value1 + Value2;
    }

流石にテストを行うほどじゃねーだろ!と言われたら御仕舞ですが、世の中シンプルなものでやるのが一番です。
というわけでテストコードがこちら。

        [TestMethod()]
        public void CalcurationTestSimple()
        {
            int Alpha = 1;
            int Bravo = 10;
            int Answer = 11;

            var Test = new Calcuration(Alpha, Bravo);
            Assert.AreEqual(Answer, Alpha + Bravo);
            Assert.IsTrue(Alpha + Bravo == Test.Additional());
        }

結果は見りゃわかるだろって? そりゃ言わないお約束です。
ここで注目してほしいのはAssertクラスによるメソッドです。
引数同士で比較したり、bool型を戻り値に持つ式を入れたりして、正しい値が出るならテストが成功しているとテストエクスプローラで通知してくれます。
逆に、こうじゃなかったら失敗だよ!という場所にAssert.Fail()メソッドを入れたりすることで、テストで望む結果が出ていないことを通知してくれます。

なぜ作るのか

私の見解ですけど……テストコードというのは、自分で自分が望む挙動を作成したプログラムが行っているかを見るために作成しているものだと思っています。
作ったコードが正しいものであるという根拠にもなるでしょうし、どういう動作をしているか・させるかを見せるものでもあると思っているので作る意義は十分あると思います。