【C#】ChatGPTも活用した単体テストの練習

今回は、Windows Formsアプリの場合についてテストコードを実装する方法をみていきましょう

条件

.Net frameworkのフレームワークを使った場合になります

テストされるコードについて

次のAddメソッドをテストします
テストというイメージですが、例えば、2と3を引数で渡して戻り値として5が返ってくれば、このメソッドは正しく実装されていると考え、正常と判定します

単純なコードですが、これを自動的にテストする様子を見ていきます

public class Calculator
{
    public int Add(int x, int y)
    {
        return x + y;
    }
}

テストコード

[TestMethod]
public void TestAdd()
{
    // 準備
    Calculator calculator = new Calculator(); // Calculatorクラスのインスタンスを作成します
    int a = 5; // 整数変数aに5を代入します
    int b = 3; // 整数変数bに3を代入します
    int expected = 8; // 期待される結果は8です

    // 実行
    int result = calculator.Add(a, b); // Addメソッドを呼び出して計算結果を取得します

    // アサーション
    Assert.AreEqual(expected, result); // 結果を期待値と比較し、テストの成否を判定します
}

このコードは、CalculatorクラスのAddメソッドをテストしています。テストメソッドの流れは以下の通りです。

  1. 準備: 最初に、Calculatorクラスの新しいインスタンスを作成し、整数変数aとbにそれぞれ5と3を代入します。また、計算結果の期待値として8を設定します。
  2. 実行: CalculatorクラスのAddメソッドを呼び出し、aとbを加算した結果を取得します。この結果は変数resultに格納されます。
  3. アサーション: 最後に、計算結果(result)と期待値(expected)を比較して、それらが等しいかどうかを確認します。もし等しくなければ、テストは失敗となります。

このテストは、Addメソッドが5と3を加算して正確に8を返すかどうかを確認するために使用されます。もしAddメソッドに問題がある場合、このテストは失敗し、問題箇所を特定するのに役立ちます。

このコードは、CalculatorクラスのAddメソッドが正しく機能しているかどうかをテストしています。テストが成功すると、Addメソッドは期待通りに動作し、異常な振る舞いがないことが確認されます。逆に、テストが失敗する場合、Addメソッドに問題がある可能性があります。

手順のビデオ

ここでは、すでにあるFormsアプリに新しくクラス、メソッドを作成する手順、テストコードの追加手順、テスト実行手順について紹介しています

テストコードの作成は、ChatGPTを使ってサンプルを作っています
学習目的で参考にしてもらえればと思います

ビデオ中のテストコード

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using WindowsFormsApp3;

namespace UnitTestProject2
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestAdd()
        {
            // Arrange
            Calculator calculator = new Calculator();
            int a = 5;
            int b = 3;
            int expected = 8;

            // Act
            int result = calculator.Add(a, b);

            // Assert
            Assert.AreEqual(expected, result);
        }

        [TestMethod]
        public void TestAdd_NegativeNumbers()
        {
            // Arrange
            Calculator calculator = new Calculator();
            int a = -5;
            int b = -3;
            int expected = -8;

            // Act
            int result = calculator.Add(a, b);

            // Assert
            Assert.AreEqual(expected, result);
        }
    }
}