1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Go Test を書いてみよう

Last updated at Posted at 2020-07-26

Goには標準でテスト機能が組み込まれています。
Goのソースに対して、簡単なテストを書いてみましょう。

環境

% sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.5
BuildVersion:	19F101

% go version
go version go1.14.6 darwin/amd64

サンプルのディレクトリ構造

今回のサンプルファイルは、下記のようになっています。

gotest
  |-- app.go      // アプリの処理 (アプリ名を返す関すのみ持っている)
  |-- app_test.go // app.go の関数をテストする
  |-- main.go     // app.go の関数を呼び出す
main.go
package main

import (
	"fmt"
)

func main() {
	fmt.Println(AppName())
}
app.go
package main

func AppName() string {
	return "My App Name"
}
app_test.go
package main

import (
	"testing"
)

func TestAppName(t *testing.T) {
	expect := "My App Name"
	actual := AppName()

	if expect != actual {
		t.Errorf("%s != %s", expect, actual)
	}
}

アプリの実行確認

まず、アプリが動作することを確認しましょう。アプリ名が出力されています。

% cd gotest
% go run main.go app.go
My App Name

Go のテスト

出力の[path]は、各自環境でのフルパスになります。

% cd gotest
% go test
PASS
ok  	[path]/gotest	0.066s

オプション「-v」を付けると、テストの詳細が出力されます。
テストを複数実行する際に、活躍できそうです。

% go test -v
=== RUN   TestAppName
--- PASS: TestAppName (0.00s)
PASS
ok  	[path]/gotest	0.135s

Go のテストを書く際の注意点

  1. テストファイル名の終端は「_test.go」でなければならない。
  2. テスト関数名は「Test」で始まらなければならない。
  3. テストファイルは、"testing"パッケージを宣言し、利用する。
  4. デフォルトでassertは用意されていないので、自作する必要がある。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?