本講座のレビューに関して記載された記事数の「直近6カ月の推移」を以下のグラフにまとめました。
| Month | Progress |
|---|---|
| 12月 | |
| 1月 | |
| 2月 | |
| 3月 | |
| 4月 | |
| 5月 | 1 |
本コースにはAIの使用が含まれています。
「Goの文法はわかるのに、テストの書き方がわからない」 そんな方のための講座です。
Goを学び始めると、関数や構造体、インターフェースといった基本文法はスムーズに身につきます。しかしいざテストを書こうとすると、「どこから始めればいいのか」「これで合っているのか」と手が止まってしまう方は少なくありません。テストは書き方のパターンがある程度決まっており、そのパターンを順番に身につければ、誰でも書けるようになります。
このコースでは、Go標準の testing パッケージを使ったテストコードの書き方を、30問のドリル形式で体系的に学びます。ただ動画を眺めるのではなく、問題を解きながら手を動かすことで、頭で理解したことがコードとして自然に出てくるようになることを目指しています。
このコースで学べること
セクション1:テストの基本構造 テスト関数の命名ルールやファイル名のルールから始まり、t.Error と t.Fatal の違い、エラーを返す関数のテスト方法など、テストを書く上で必ず知っておくべき基礎を丁寧に押さえます。
セクション2:テーブル駆動テスト Goのテストで広く使われるテーブル駆動テストのパターンを学びます。複数のテストケースをスライスで管理し、t,Runでサブテストに分割することで、失敗時にどのケースが問題かを素早く特定できるようになります。境界値やエラーケースの扱い方、スライスやマップの比較方法も扱います。
セクション3:テストの整備 TestMain によるセットアップ・終了処理、t.Cleanup を使ったリソースの後片付け、t.TempDir や t.Setenv を使った一時ファイル・環境変数の扱い方など、テストをきちんと整備するための技術を学びます。t.Parallel による並列実行と、その際の注意点も取り上げます。
セクション4:インターフェースと依存の差し替え テストが難しいと感じる場面の多くは、外部への依存(時刻・ファイル・外部API)が原因です。インターフェースを使った依存の抽象化と、手書きスタブによる差し替え方法を学ぶことで、テストしやすい設計の考え方が身につきます。io.Reader / io.Writer を活用したパターンも扱います。
セクション5:HTTPテスト httptest.ResponseRecorder を使ったハンドラーのテスト、httptest.NewServer を使った外部APIのモック、JSONレスポンスの検証方法など、WebアプリケーションのテストにGoでどう向き合うかを学びます。
セクション6:総合演習 最後の1問は、これまでの内容をすべて組み合わせた総合課題です。簡単なREST APIに対して、テーブル駆動テスト・httptestでの検証・スタブによる依存の差し替えを実装し、go test -cover でカバレッジを確認しながらテストを仕上げます。
対象者
Goの基本文法は理解しているが、テストをほとんど書いたことがない方
テストは書けるが、「これで合っているのか」と自信が持てない方
テーブル駆動テストやモックという言葉は知っているが、使いこなせていない方
チームのコードにテストを追加していきたい方
前提知識
Goの関数・構造体・インターフェースの基本が理解できていること
go build や go run を使ったことがある程度の経験
本コースの特徴を単語単位でまとめました。以下の単語が気になる方は、ぜひ本講座の受講をオススメします。
本講座を受講した皆さんの感想を以下にまとめます。
・Rustのテストの書き方【#[test]から統合テストまで丁寧に解説】[2026-05-23に投稿]