💬

go test について

2022/07/30に公開

testing

import "testing"

func TestArchiveServiceList(t *testing.T) {
	if err := fixtures.Load(); err != nil {
		log.Fatalf("failed load fixtures: %v", err)
	}

	ctx := context.Background()
	conn, err := grpc.DialContext(ctx, "bufnet", grpc.WithContextDialer(bufDialer), grpc.WithTransportCredentials(insecure.NewCredentials()))
	if err != nil {
		t.Fatalf("failed connect grpc: %v", err)
	}
	defer conn.Close()

	client := genproto.NewArchiveServiceClient(conn)
	resp, err := client.List(ctx, &genproto.ListArchiveRequest{})

	if err != nil {
		t.Fatalf("failed to list the archive master %v", err)
	}

	assert.Equal(t, 3, len(resp.ArchiveList))
}

テスト実行

テストファイルが存在するディレクトリ内にて

go test -v

テスト対象を絞る

テストメソッド名で絞る

 go test -run Archive 

カバレッジを出力する

go test -v -cover

カバレッジレポート

https://qiita.com/kkohtaka/items/965fe08821cda8c9da8a
https://pkg.go.dev/testing

test fixture

テストデータの追加と削除を実行してくれる。

https://github.com/go-testfixtures/testfixtures

bufconn

https://pkg.go.dev/google.golang.org/grpc/test/bufconn

https://qiita.com/castaneai/items/8f975204a79e9783ecc3

Discussion