カテゴリ: Go言語 更新日: 2026/01/02

Go言語のテストの基本!testingパッケージを使った単体テスト入門

Go言語のテストの基本!testingパッケージを使った単体テスト入門
Go言語のテストの基本!testingパッケージを使った単体テスト入門

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語で作ったプログラムの動きが正しいかどうかを確認する方法ってありますか?」

先生

「はい、Go言語にはtestingというパッケージがあって、単体テストと呼ばれる方法で関数や処理が正しく動くかを確認できます。」

生徒

「単体テストって、どんなことをするんですか?」

先生

「簡単に言えば、プログラムの小さな部分を実際に動かして、期待通りの結果が返ってくるかをチェックする作業です。」

生徒

「なるほど。具体的にはどう書けばいいですか?」

先生

「では、まず基本的なテストの書き方から見ていきましょう。」

1. testingパッケージとは?

1. testingパッケージとは?
1. testingパッケージとは?

Go言語のtestingパッケージは、プログラムの関数や処理が正しく動くかを確認するための標準的なツールです。パッケージとは、機能やコードをまとめたまとまりで、ライブラリのようなものです。testingを使うと、自動でテストを実行でき、手作業で確認する手間が省けます。

2. 単体テストの基本構造

2. 単体テストの基本構造
2. 単体テストの基本構造

単体テストは、テストしたい関数ごとにテスト関数を作ります。テスト関数の名前はTestで始め、引数にt *testing.Tを受け取る形にします。tを使って、テストの結果を報告します。


package main

import "testing"

func Add(a, b int) int {
    return a + b
}

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Add(2,3) = %d; want 5", result)
    }
}

この例では、Add関数が正しく2+3を計算できるかをチェックしています。期待する結果は5なので、それと違った場合にエラーとして報告されます。

3. t.Errorfの意味と使い方

3. t.Errorfの意味と使い方
3. t.Errorfの意味と使い方

t.Errorfは、テストが失敗した場合にエラーメッセージを出力するためのメソッドです。t.Failt.Fatalと違い、テストを途中で止めずに複数のチェックを続けることができます。これにより、一度のテストで複数の確認を行うことが可能です。

4. 複数のケースをまとめてテストする

4. 複数のケースをまとめてテストする
4. 複数のケースをまとめてテストする

同じ関数に対して、異なる入力値をテストしたい場合は、テーブル駆動テストという方法を使います。テーブル駆動テストでは、テストケースを配列にまとめてループで回すことで効率的にチェックできます。


func TestAddTable(t *testing.T) {
    tests := []struct {
        a, b int
        want int
    }{
        {1, 1, 2},
        {2, 3, 5},
        {10, 5, 15},
    }

    for _, tt := range tests {
        result := Add(tt.a, tt.b)
        if result != tt.want {
            t.Errorf("Add(%d,%d) = %d; want %d", tt.a, tt.b, result, tt.want)
        }
    }
}

この方法で、一つ一つ手で書かなくても複数のパターンをテストできます。

5. テストの実行方法

5. テストの実行方法
5. テストの実行方法

Go言語のテストは、コマンドラインでgo testを使って実行します。テストファイルはxxx_test.goという名前にする必要があります。例えば、上記のAdd関数のテストが書かれたadd_test.goを用意し、ターミナルで次のコマンドを実行します。


go test

テストが全て成功すれば「ok」と表示され、失敗した場合はエラー内容が出力されます。これにより、プログラムが正しく動くかをすぐに確認できます。

6. 初心者向けのテストのコツ

6. 初心者向けのテストのコツ
6. 初心者向けのテストのコツ

テスト初心者は、まず関数ごとに簡単な入力値と期待値を決めてチェックすることから始めると良いです。また、テストコードも読みやすく書くことが大切です。エラー時のメッセージは、どの入力で失敗したかがわかるように書くと、原因の特定が容易になります。

Go言語の単体テストはシンプルで、テストの作成と実行が非常に簡単です。testingパッケージを使いこなすことで、プログラムの品質を高めることができます。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
New2
Kotlin
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール
New3
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New4
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.5
Java&Spring記事人気No5
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.6
Java&Spring記事人気No6
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説