GO言語を自動テストする具体例

WordPress

Go言語では、標準の testing パッケージを使って自動テストを行うことができます。具体例を示しますので、手順に従ってコードを書いていきましょう。

ステップ1: 関数を用意する

最初に、テストする対象の関数を用意します。ここでは、2つの数値を足し算する Add 関数を例に挙げます。

calc.goファイル:

package calc

// Add は2つの数値を足し算する関数です
func Add(a, b int) int {
return a + b
}

ステップ2: テストコードを書く

次に、Add関数に対するテストコードを書きます。テストコードは、*_test.go という名前のファイルに書く必要があります。

calc_test.goファイル:

package calc

import "testing"

func TestAdd(t *testing.T) {
// テストケース1: 2 + 3 = 5
result := Add(2, 3)
expected := 5
if result != expected {
t.Errorf("Add(2, 3) = %d, expected %d", result, expected)
}

// テストケース2: 0 + 0 = 0
result = Add(0, 0)
expected = 0
if result != expected {
t.Errorf("Add(0, 0) = %d, expected %d", result, expected)
}

// テストケース3: -1 + 1 = 0
result = Add(-1, 1)
expected = 0
if result != expected {
t.Errorf("Add(-1, 1) = %d, expected %d", result, expected)
}
}

testing.T は、テストに関する情報を持つ構造体です。t.Errorf は、テストが失敗した場合にエラーメッセージを出力します。

ステップ3: テストを実行する

テストコードを書いたら、実際にテストを実行してみましょう。ターミナル(コマンドプロンプト)で、プロジェクトのディレクトリに移動し、以下のコマンドを実行します。

go test ./...

すると、以下のような出力が得られます。

ok      example.com/calc        0.005s

テストがすべて成功したことがわかります。

ステップ4: テストが失敗するケースを確認する

故意にテストコードを変更して、テストが失敗するケースを確認してみましょう。calc_test.goファイルの最後のテストケースを次のように変更します。

// テストケース3: -1 + 1 = 1 (間違っている)
result = Add(-1, 1)
expected = 1
if result != expected {
t.Errorf("Add(-1, 1) = %d, expected %d", result, expected)
}

再度テストを実行すると、今度は次のようなエラーメッセージが出力されます。

--- FAIL: TestAdd (0.00s)
calc_test.go:23: Add(-1, 1) = 0, expected 1
FAIL
exit status 1
FAIL example.com/calc 0.005s

このように、Go言語の testing パッケージを使うことで、自動テストを簡単に実装できます。テストは、関数やメソッドが期待どおりに動作することを確認するために重要です。また、リファクタリングやコード変更の際にも、テストを実行してバグの有無を確認できます。

コメント

タイトルとURLをコピーしました