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

Go言語のテストフレームワークTestify入門!初心者でもわかるテストとデバッグ

Go言語のテストフレームワーク(Testifyなど)を使う方法
Go言語のテストフレームワーク(Testifyなど)を使う方法

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

生徒

「Go言語で書いたプログラムをちゃんと動くか確認する方法はありますか?」

先生

「はい、Go言語には標準でテスト機能が備わっていますが、もっと便利に使えるフレームワークとしてTestifyがあります。」

生徒

「Testifyって何ですか?」

先生

「TestifyはGo言語用のテストライブラリで、テストの書き方を簡単にしたり、テスト結果をわかりやすく表示したりできるツールです。」

生徒

「具体的にどうやって使うんですか?」

先生

「では、基本的な使い方を一緒に見ていきましょう!」

1. Testifyとは何か?

1. Testifyとは何か?
1. Testifyとは何か?

Go言語のTestifyは、テストの作成を簡単にしてくれるライブラリです。例えば、計算プログラムが正しく計算できるか、自動で確認することができます。Testifyを使うと、テスト結果が見やすくなり、エラーがどこで起きたのかも簡単に確認できます。

2. Testifyのインストール方法

2. Testifyのインストール方法
2. Testifyのインストール方法

まずはTestifyをGoのプロジェクトに追加します。Goのパッケージ管理ツールであるgo getを使います。


go get github.com/stretchr/testify

これでTestifyを使う準備ができました。Testifyには主にassertという機能があり、値が期待通りかどうかを簡単にチェックできます。

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

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

Go言語では、*_test.goというファイル名にすると自動でテストとして認識されます。まず簡単な例を見てみましょう。


package main

import (
    "testing"
    "github.com/stretchr/testify/assert"
)

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

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    assert.Equal(t, 5, result, "2 + 3 は 5 になるはずです")
}

この例では、Add関数が正しく動作するか確認しています。assert.Equalを使うことで、計算結果が期待通りか自動でチェックできます。

4. よく使うassertの種類

4. よく使うassertの種類
4. よく使うassertの種類

Testifyには便利なassert関数がいくつかあります。代表的なものを紹介します。

  • assert.Equal(t, expected, actual):値が等しいか確認
  • assert.NotNil(t, object):オブジェクトがnilでないか確認
  • assert.True(t, condition):条件がtrueか確認

これらを組み合わせることで、複雑な処理も簡単にテストできます。

5. Testifyでエラーをわかりやすく表示する

5. Testifyでエラーをわかりやすく表示する
5. Testifyでエラーをわかりやすく表示する

テストが失敗したとき、Testifyはどこで失敗したかを教えてくれます。例えば、以下のように間違った期待値を入れてみます。


func TestAddFail(t *testing.T) {
    result := Add(2, 2)
    assert.Equal(t, 5, result, "2 + 2 は 5 ではありません")
}

--- FAIL: TestAddFail (0.00s)
    add_test.go:14: 
                Error Trace:    add_test.go:14
                Error:          Not equal: 
                                expected: 5
                                actual  : 4
                Test:           TestAddFail

このように、どの行でエラーが起きたか、期待値と実際の値が何かを教えてくれるので、デバッグが簡単になります。

6. 実践的な使い方とデバッグ

6. 実践的な使い方とデバッグ
6. 実践的な使い方とデバッグ

Testifyを使うことで、複数の関数や条件を一度にテストすることも可能です。また、テストが失敗した場合は、エラーの場所をすぐに特定できるので、プログラムのバグを効率よく見つけられます。これにより、開発スピードも上がります。

さらに、テストを書いておくと、プログラムを修正したときに以前の機能が壊れていないかも自動で確認できるため、安心してコードを変更できます。これが「自動テスト」の大きなメリットです。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

7. まとめの前に知っておくと便利なポイント

7. まとめの前に知っておくと便利なポイント
7. まとめの前に知っておくと便利なポイント

初心者の方はまず、簡単な計算や文字列操作などの小さな関数からTestifyを使ってテストを書く練習をすると良いでしょう。慣れてきたら、条件分岐やループ処理など、少し複雑な関数のテストにも挑戦できます。

また、Go言語の標準テスト機能とTestifyを組み合わせることで、テストの効率が格段にアップします。最初はコードを少しずつ書きながら、テストの結果を確認するというサイクルを身につけるのがおすすめです。

関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のスコープとは?ローカル変数・グローバル変数の違いと使い分け
New2
Go言語
Go言語の構文ルールまとめ!インデント・セミコロンなど最初に知っておくポイント
New3
Kotlin
KotlinのwithTimeoutでタイムアウト処理を設定しよう!初心者にもわかる非同期の安全な止め方
New4
Go言語
Go言語のマップの順序保証がない理由と扱い方の工夫をやさしく解説!初心者でもわかる基本知識
人気記事
No.1
Java&Spring記事人気No1
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語
Go言語でREST APIを作る設計と実装パターン完全ガイド!初心者でもわかるAPI開発
No.3
Java&Spring記事人気No3
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.6
Java&Spring記事人気No6
Go言語
Swiftの変数と定数の使い方を完全ガイド!初心者でもわかる基本文法
No.7
Java&Spring記事人気No7
Go言語
Go言語のトランザクション処理を完全解説!Begin・Commit・Rollbackを初心者向けにやさしく理解
No.8
Java&Spring記事人気No8
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!