stretchr/testifyではEqualとGreaterで引数の意味が逆
古くからstretchr/testify/assertというアサーション用のライブラリがあるけれど、これは関数ごとに引数の順序が異なるので非常に混乱する。
具体的には、assert.Equal において引数の順序は
func Equal(*testing.T, expected, actual any, format ...any) boolのように expected が先に置かれる。このときテストで失敗すると以下のように出力される。
$ go test
Error: Not equal: expected: 2 actual : 1だけど Greater のシグネチャは
func Greater(*testing.T, e1, e2 any, format ...any) boolとなっており、この意味は e1 が e2 よりも大きいことを意味する。なので e1 が actual で e2 が expected の状態に近い。順序が逆になっているのは混乱するし間違いの元なので困る。