HOWTO · Go
Go でアサートを使用する
このチュートリアルでは、GoLang で assert を使用する方法を示します。
このページの内容
このチュートリアルでは、GoLang で assert を使用する方法を示します。
GoLang で assert を使用する
GoLang は assert の組み込みサポートを提供していませんが、Testify API から広く使用されているサードパーティ パッケージ assert を使用できます。 assert パッケージは、他の言語の assert メソッドと同様に、GoLang コードをテストするために使用されます。
assert パッケージは、Go システムをテストするための包括的なツールを提供します。 さまざまなテストの種類に対応する多くの方法を提供します。 assert メソッドに関する情報は こちら で確認できます。
assert パッケージを使用する前に、ダウンロードしてロードする必要があります。 assert パッケージを取得するには、以下の手順に従います。
-
管理者としてコマンド プロンプトを開きます。
-
Go プロジェクトのディレクトリに移動します。
-
go.modファイルがないことを確認してください。 ディレクトリにgo.modファイルが含まれている場合は、それを削除してから次の手順に進みます。 -
assertパッケージのgo.modファイルを初期化し、次のコマンドを実行します。go mod init github.com/stretchr/testify/assert
-
assertパッケージをダウンロードしてインストールします。 次のコマンドを実行します。go get github.com/stretchr/testify/assert
-
上記のコードは
assertパッケージをプルしますが、他の依存関係も必要になる場合があります。 次のコマンドを実行して、他のすべての依存関係をダウンロードします。go mod download
パッケージをダウンロードしてインストールしたら、テストを実行できます。 例を試してみましょう:
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAssert(t *testing.T) {
assert := assert.New(t)
var Demo1 string = "Hello, This is delftstack.com!"
var Demo2 string = "Hello, This is delftstack.com!"
assert.Equal(Demo1, Demo2, "Both strings should be equal")
}
上記のコードは、2つの文字列が等しいかどうかをテストします。 文字列が等しい場合、テストに合格します。 それ以外の場合は、失敗しました。
出力を参照してください。
=== RUN TestAssert
--- PASS: TestAssert (0.00s)
PASS
上記の出力は、テストに合格したことを示しています。 しかし、テストが失敗した場合はどうなりますか?
assert テストが失敗する例を試してみましょう。
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAssert(t *testing.T) {
assert := assert.New(t)
var Demo1 string = "Hello, This is delftstack.com!"
var Demo2 string = "Hello, This is delftstack"
assert.Equal(Demo1, Demo2, "Both strings should be equal")
}
ご覧のとおり、両方の文字列が等しくないため、テストは失敗するはずです。 出力を参照してください。
RUN TestAssert
prog.go:15:
Error Trace: /prog.go:15
Error: Not equal:
expected: "Hello, This is delftstack.com!"
actual : "Hello, This is delftstack"
Diff:
--- Expected
+++ Actual
@@ -1 +1 @@
-Hello, This is delftstack.com!
+Hello, This is delftstack
Test: TestAssert
Messages: Both strings should be equal
--- FAIL: TestAssert (0.00s)
FAIL
Program exited.
ご覧のとおり、テストは失敗し、プログラムはテストに関する完全な情報を表示します。 equal のような多くのメソッドがあり、assert と一緒に使用してさまざまなテストを実行できます。
メソッド assert.Nil と assert.NotNil の例を試してみましょう:
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAssert(t *testing.T) {
var demo = []string{
"delftstack.123@hotmail.com",
"Delftstack <demo@delftstack.com>",
"demo@delftstack.tv",
"demohotmail.com",
"demo@"}
// assert for nil
assert.Nil(t, demo)
}
上記のコードは、値の指定されたオブジェクトをチェックします-それが nil の場合。 出力を参照してください。
=== RUN TestAssert
prog.go:19:
Error Trace: /prog.go:19
Error: Expected nil, but got: []string{"delftstack.123@hotmail.com", "Delftstack <demo@delftstack.com>", "demo@delftstack.tv", "demohotmail.com", "demo@"}
Test: TestAssert
--- FAIL: TestAssert (0.00s)
FAIL
Program exited.
同様に、
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAssert(t *testing.T) {
var demo = []string{
"delftstack.123@hotmail.com",
"Delftstack <demo@delftstack.com>",
"demo@delftstack.tv",
"demohotmail.com",
"demo@"}
// assert for not nil
assert.NotNil(t, demo)
}
上記のコードは、nil オブジェクトまたは値ではないかどうかをテストします。 出力を参照してください。
=== RUN TestAssert
--- PASS: TestAssert (0.00s)
PASS
Program exited.