カテゴリ: Go言語 更新日: 2025/11/08

Go言語の関数のテストを書く基本!単体テストのやり方を解説

Go言語の関数のテストを書く基本!単体テストのやり方を解説
Go言語の関数のテストを書く基本!単体テストのやり方を解説

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

生徒

「Go言語で作った関数がちゃんと動くか確かめたいんですけど、どうすればいいですか?」

先生

「Go言語では、testingというパッケージを使って関数のテストを書くことができますよ。」

生徒

「それって難しくないですか?何か特別な設定が必要ですか?」

先生

「大丈夫、すごくシンプルです。基本的な使い方を一緒に見ていきましょう!」

1. Go言語のテストとは?

1. Go言語のテストとは?
1. Go言語のテストとは?

Go言語では、プログラムの一部が正しく動くかをチェックするために、単体テスト(ユニットテスト)を書くことができます。特に、testingという標準パッケージを使うことで、簡単に関数の動作確認ができます。

2. テストを書くためのファイルのルール

2. テストを書くためのファイルのルール
2. テストを書くためのファイルのルール

Go言語でテストを書くときには、特定のルールに従ったファイルを作ります。具体的には、テスト対象のファイル名に対して_test.goという名前のファイルを作ります。

たとえば、calc.goというファイルがある場合は、calc_test.goという名前のテストファイルを作成します。

3. 基本的なテスト関数の書き方

3. 基本的なテスト関数の書き方
3. 基本的なテスト関数の書き方

テスト関数は、関数名がTestで始まり、引数に*testing.Tを取る関数です。以下が基本の書き方です。


package main

import "testing"

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

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

このコードでは、Add関数の出力が正しいかどうかをチェックしています。もし間違っていれば、エラーメッセージが表示されます。

4. テストを実行する方法

4. テストを実行する方法
4. テストを実行する方法

テストファイルを作成したら、次に実行する方法です。ターミナル(黒い画面)を開いて、該当のファイルがあるディレクトリに移動し、以下のコマンドを入力します。


go test

すると、テストが実行されて、成功したかどうかが表示されます。失敗した場合には、どのテストが失敗したのかもわかります。

5. テスト関数を複数書くこともできる

5. テスト関数を複数書くこともできる
5. テスト関数を複数書くこともできる

複数の関数をテストしたい場合、それぞれにTestで始まる関数を用意することで対応できます。


func Multiply(a, b int) int {
    return a * b
}

func TestMultiply(t *testing.T) {
    result := Multiply(4, 5)
    expected := 20
    if result != expected {
        t.Errorf("Multiply(4, 5) = %d; want %d", result, expected)
    }
}

このように、関数ごとにテストを書くと、どの部分に問題があるかが明確になり、あとでバグを見つけやすくなります。

6. テストの失敗を表示するt.Errorfの意味

6. テストの失敗を表示するt.Errorfの意味
6. テストの失敗を表示するt.Errorfの意味

t.Errorfは、テストの中で条件が間違っていた場合にエラーメッセージを表示する関数です。"Add(2, 3) = %d; want %d"のように書くと、どのような結果だったのかが分かりやすく表示されます。

7. テストの基本を知ることで開発が安全に

7. テストの基本を知ることで開発が安全に
7. テストの基本を知ることで開発が安全に

テストを書くことは、プログラムが間違っていないかを確認するためにとても大事です。自分が書いた関数が正しく動くかをチェックできれば、自信を持って開発ができるようになります。

Go言語ではテスト機能が最初から入っているので、特別な準備をしなくてもすぐに始められます。

まとめ

まとめ
まとめ

Go言語で関数のテストを書く方法を学ぶことで、作ったプログラムが正しく動いているかを自分で確認できるようになります。とくに、Go言語は最初からテストの仕組みが組み込まれているので、追加のライブラリを入れたり、難しい設定をしたりする必要がありません。_test.goというファイル名のルールに従い、Testで始まる関数を作り、*testing.Tを受け取る形でテストを書くと、自分の関数が間違っているかどうかを確かめられます。間違っていたときは、t.Errorfで分かりやすいメッセージを表示できるので、どこを直せばよいのかをすぐに見つけられます。 また、複数の関数をテストしたいときは、関数ごとにテストを追加するだけでよく、処理の変更や再利用がしやすくなります。たとえば、足し算を確認する関数と掛け算を確認する関数があっても、どちらが壊れているかはテストを実行すればすぐに分かります。プログラムを改修したときにも、テストを実行して問題が出ないか確認できるので、安心してコードを変更できます。 テストは小さな範囲から始めて大丈夫です。まずは一つの関数から、値の確認をできるようにしましょう。慣れてくると、条件や入力のパターンを増やして、「正しい結果を返すか」「間違った入力でも落ちないか」なども確認できます。テストを書くことは、ただ動作を確かめるだけでなく、将来の自分やチーム全体にとって安心材料になります。 下にまとめとして、シンプルなテストの例をもう一度載せておきます。「こういう形で書けばよかったな」と思い出せるようにしておくと便利です。

シンプルなサンプルコードの振り返り


package main

import "testing"

func Divide(a, b int) int {
    return a / b
}

func TestDivide(t *testing.T) {
    result := Divide(10, 2)
    expected := 5
    if result != expected {
        t.Errorf("Divide(10, 2) = %d; want %d", result, expected)
    }
}

このテストも、名前がTestで始まり、*testing.Tを受け取っています。Divide(10, 2)の結果が5になるかどうかを確認しています。もし違う結果になれば、t.Errorfで理由を表示してくれるので、どこを直すべきかすぐに気づけます。「練習したいけどどこからやればいいか分からない」と感じたときは、このような小さなテストから挑戦すると、考え方がつかみやすくなります。 開発を続けていくと、関数の数が増えたり、新しい機能の追加でコードが大きくなったりします。そんなときにテストがあると、動作確認が一気に楽になります。自分の手で一つずつ試すより、コマンド一つで何十個も確認できるのは、とても効率的で心強い仕組みです。

先生と生徒の振り返り会話

生徒

「最初はテストって難しそうだと思っていましたけど、やってみると意外とシンプルなんですね。」

先生

「そうでしょう。特にGo言語はテストの機能が標準で入っているから、設定に悩まなくていいんです。」

生徒

「ファイル名を_test.goにするだけでいいっていうのも分かりやすかったです!テストの結果もすぐ見られるから、書いていて楽しくなりますね。」

先生

「その調子です。小さなテストが積み重なると、大きな安心につながります。困ったときは、まずテストを書いて確かめる習慣をつけてください。」

生徒

「はい!これから作る機能にもテストをつけてみます!」

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!