カテゴリ: 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
Kotlin
Kotlinの構文ルールまとめ!インデント・セミコロンなど初心者が最初に覚えるべきポイント
New2
Kotlin
Kotlinの関数ドキュメンテーションコメント(KDoc)の書き方を徹底解説!初心者でもわかる丁寧なガイド
New3
Kotlin
KotlinでHello Worldを表示するには?最初の1行を実行してみよう
New4
Go言語
Go言語の依存関係管理を始めよう!go modの基本設定と導入手順
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.2
Java&Spring記事人気No2
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.3
Java&Spring記事人気No3
Kotlin
KotlinのAPI通信でGETリクエストを送る方法!初心者向け徹底ガイド
No.4
Java&Spring記事人気No4
Swift
SwiftのURLSessionでのネットワークエラー対策!再試行とタイムアウトを初心者向けに解説
No.5
Java&Spring記事人気No5
Go言語
Go言語のテストでタイムアウト・並行処理を扱うポイント
No.6
Java&Spring記事人気No6
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.7
Java&Spring記事人気No7
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
Swift
Swift JSONデコード失敗の原因と対処|DecodingError徹底解説