August 2025
Beginner to intermediate
552 pages
7h 58m
Japanese
2000年頃からのトレンドを振り返ってみると、コードの質を高めることにもっとも貢献したのはテストの自動化が広く普及したことではないかと思えます。プログラミング言語も、それを取り巻く環境も、ソフトウェアの質向上に焦点を当てていることを考えれば、Goの標準ライブラリにテスト支援機能が含まれていても何の不思議もありません。Goではコードのテストが非常に簡単にできます。テストしない言い訳はできません。
この章では、Goにおけるコードのテスト方法、テストのユニット化と統合、コードカバレッジの測定、ベンチマークの作成、並行性に関する問題をGoの「レースチェッカー」を使ってチェックする方法などを説明します。説明の中で、テストしやすいコードの書き方と、そうした書き方がなぜコードの質を向上させるかについても検討します。
Goのテスト関連機能は「ライブラリ」と「ツール」の2つに分けられます。標準ライブラリ内のパッケージtestingはテストを作成するための型と関数を提供しています。また、Goにバンドルされているツールのgo testはテストを実行してレポートを作成します。ほかの多くの言語とは異なり、Goのテストは製品版のコードと同じディレクトリ、同じパッケージに置かれます。テストが同じパッケージ内にあるので、エクスポートされていない関数や変数にもアクセスしてテストすることができます(この章では「公開APIだけを対象にしていることが保証できるテスト」を作成する方法も紹介します)。
まず、簡単な関数を作成して、それがきちんと動くかどうかテストしてみましょう。ファイルch15/01adder/adder.goに次のような関数があります。
funcaddNumbers ...
Read now
Unlock full access