Golangで実装したものをstretchr/testify/assertを用いてAとBが等しいかテストしようとしています。
go
1package hoge 2 3import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9) 10 11func TestHoge(t *testing.T) { 12 t.Parallel() 13 14 tests := map[string]struct {...}{...} 15 16 for _, test := range tests { 17 t.Run(test.name, func(t *testing.T) { 18 assert.Equal(t, A, B) 19 }) 20 } 21} 22
ここで、以下のような結果になるにもかかわらず、assert.Equal(t, A, B)
で失敗してしまいます。
go
1fmt.Printf("%v\n", A) // -> Hoge 2fmt.Printf("%v\n", B) // -> Hoge 3fmt.Printf("%v\n", A == B) // -> true
エラー文
go
1Error Trace: hoge.go:56 2Error: Not equal: 3expected: 0x0 4actual : 0x2
こちらのテストの通し方がわからないのですが、もしご存知の方がいらっしゃいましたら教えていただきたいです。
not-foundな AとBを比較することに意味があるんですか?
ご質問ありがとうございます!こちら記述がわかりにくくてすみません。
上記は簡易化して書いてしまったのですが、実際は特定の処理をした場合に返されるstatus codeが意図したものであるか見比べるためのテストを書いています!
正確には、grpcのcode(google.golang.org/grpc/codes)を見比べています
Gopherはあまりこういうテスト支援サードパーティライブラリを使いません。
実際に該当の挙動を再現可能なミニコードを貼ってもらいたいです。
単純な値を入れてみたところちゃんと「A==B」も「assert.Equal(t, A, B)」も成立して質問の状況を再現できません。つまり、AとBの実体が伏せられている限り回答は難しいと思います。