Skip to Content
初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド
book

初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド

by Jon Bodner, 武舎 広幸
September 2022
Beginner to intermediate
464 pages
6h 52m
Japanese
O'Reilly Japan, Inc.
Content preview from 初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド

13章テスト

この20年間を振り返ってみると、コードの質を高めることにもっとも貢献したのはテスト自動化が広く普及したことではないかと思えます。プログラミング言語も、それを取り巻く環境も、ソフトウェアの質向上に焦点を当てていることを考えれば、Goの標準ライブラリにテスト支援機能が含まれていても何の不思議もありません。Goではコードのテストが非常に簡単にできます。テストしない言い訳はできません。

この章では、Goにおけるコードのテスト方法、テストのユニット化と統合、コードカバレッジの測定、ベンチマークの作成、並行性に関する問題をGoの「レースチェッカー」を使ってチェックする方法などを説明します。説明の中で、テストしやすいコードの書き方について、そしてその書き方がなぜコードの質を向上させるのかについても論じます。

13.1 テストの基礎

Goのテスト関連機能は「ライブラリ」と「ツール」の2つに分けられます。標準ライブラリ内のパッケージtestingはテストを作成するための型と関数を提供しています。また、Goにバンドルされているツールのgo testはテストを実行してレポートを作成します。ほかの多くの言語と異なり、Goのテストは製品版のコードと同じディレクトリ、同じパッケージに置かれます。テストが同じパッケージ内にあるので、エクスポートされていない関数や変数にもアクセスしてテストすることができます。また、「公開APIだけを対象にしていることが保証できるテスト」を作成する方法も紹介します。

まず、簡単な関数を作成して、それがきちんと動くかどうかテストしてみましょう。ファイルch13/adder/adder.goに次のような関数があります。

func addNumbers(x, y int ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

進化的アーキテクチャ ―絶え間ない変化を支える

進化的アーキテクチャ ―絶え間ない変化を支える

Neal Ford, Rebecca Parsons, Patrick Kua, 島田 浩二
スクラム実践者が知るべき97のこと

スクラム実践者が知るべき97のこと

Gunther Verheyen, 吉羽 龍太郎, 原田 騎郎, 永瀬 美穂
仕事ではじめる機械学習 第2版

仕事ではじめる機械学習 第2版

有賀 康顕, 中山 心太, 西林 孝

Publisher Resources

ISBN: 9784814400041Other