Golang プロジェクトでテストを自動化する方法
テストは、ソフトウェア プロジェクトを開発する際に重要な部分です。自動テストは、テストの効率と品質を向上させる方法です。 Golang プロジェクトでは、いくつかのツールとテクノロジーを使用してテストを自動化できます。この記事では、Golang プロジェクトで自動テストを実装する方法を紹介し、読者の理解を深めるためにいくつかのコード例を示します。
Golang には、テストの作成と実行に使用できる組み込みのテスト フレームワークが付属しています。 Golang のテスト フレームワークは、Testing
パッケージを使用してテスト関数を作成し、ファイル名にサフィックス _test.go
を付けます。これらのテストは、go test
コマンドを使用して実行できます。以下は簡単な例です:
// main.go package main import "fmt" func Add(a, b int) int { return a + b } func main() { result := Add(2, 3) fmt.Println(result) }
// main_test.go package main import "testing" func TestAdd(t *testing.T) { result := Add(2, 3) if result != 5 { t.Errorf("Expected 5, but got %d", result) } }
テスト コマンド go test
を実行します。テストに合格すると、コンソールには PASS
が表示され、そうでない場合は FAIL# が表示されます。 ##そして、対応するエラー メッセージを表示します。
testify は、より簡潔で読みやすいテスト コードを作成するのに役立つ、一般的に使用されるアサーション ライブラリです。以下に例を示します。
testify ライブラリをダウンロードしてインストールする必要があります:
go get github.com/stretchr/testify
testify ライブラリをテスト ファイル:
// main_test.go package main import ( "testing" "github.com/stretchr/testify/assert" ) func TestAdd(t *testing.T) { result := Add(2, 3) assert.Equal(t, 5, result, "Expected 5, but got %d", result) }
assert パッケージで提供されるさまざまなアサーション関数を使用して結果を検証できます。
gomock は、Golang のテスト フレームワークでよく使用できる、一般的に使用される Mock ライブラリです。以下に例を示します。
gomock ライブラリをダウンロードしてインストールする必要があります:
go get github.com/golang/mock/gomock
// main_test.go package main import ( "testing" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" ) type MockAdder struct { ctrl *gomock.Controller } func NewMockAdder(ctrl *gomock.Controller) *MockAdder { return &MockAdder{ctrl: ctrl} } func (m *MockAdder) Add(a, b int) int { return a + b } func TestAdd(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockAdder := NewMockAdder(ctrl) mockAdder.EXPECT().Add(2, 3).Return(5) result := mockAdder.Add(2, 3) assert.Equal(t, 5, result, "Expected 5, but got %d", result) }
gomock ライブラリによって提供される API を使用して、期待される動作を設定し、関数の呼び出しを確認できます。
goconvey は、ソース コードの変更を監視し、関連するテストを自動的に実行できる、人気のあるテスト駆動開発ツールです。次に例を示します。
goconvey ツールをダウンロードしてインストールする必要があります:
go get github.com/smartystreets/goconvey
goconvey コマンドを実行します。プロジェクトのルート ディレクトリ :
goconvey
goconvey は、プロジェクト内のテストおよびカバレッジ情報を表示する Web ページを自動的に起動します。テストが成功したかどうかはページ上で確認でき、ソース コードを保存するたびに
goconvey が関連するテストを自動的に実行します。
以上がGolang プロジェクトでテストを自動化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。