Go でアサートを使用する
このチュートリアルでは、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.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook