Go でシステム開発を行う際、重要になるのが「テスト」です。
特にUnit Test(単体テスト)は、バグ防止・品質向上・保守性向上に直結するため、実務では必須スキルです。
本記事では、GoでのUnit Testの書き方を「基本・実装方法・実務でのベストプラクティス」まで初心者向けに解説します。
Unit Testとは?
Unit Testとは👇
👉 関数単位で動作確認するテスト
なぜテストが必要なのか?
例えば👇
- バグ防止
- リファクタ安全化
- 品質向上
- CI/CD対応
👉 実務では超重要
Go標準のtestingパッケージ
import "testing"
テスト対象コード
package calc
func Add(a, b int) int {
return a + b
}
Unit Test作成
calc_test.go
package calc
import "testing"
func TestAdd(t *testing.T) {
result := Add(1, 2)
if result != 3 {
t.Errorf(
"expected 3 but got %d",
result,
)
}
}
テスト実行
go test
詳細表示
go test -v
テーブル駆動テスト
tests := []struct {
a, b int
want int
}{
{1, 2, 3},
{5, 5, 10},
}
👉 Go実務で超重要
Benchmarkテスト
func BenchmarkAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
Add(1, 2)
}
}
Mockテスト
type MockRepository struct{}
実務で重要なポイント
✔ テストしやすい設計
👉 Interface分離
✔ CI/CD連携
go test ./...
✔ Coverage確認
go test -cover
実務での応用
- APIテスト
- DBテスト
- バッチテスト
- CI/CD自動化
よくある失敗
❌ テスト未実装
❌ モックなし
❌ テスト依存関係複雑化
ベストプラクティス
- Table Test利用
- Interface設計
- Mock導入
- CI自動化
💡 結論
👉
「テスト品質=システム品質」


コメント