[Go] assert パッケージを使ってスライスの要素が順不同で期待通りであることを確かめる
作成日: 2022年10月28日
assert
パッケージの ElementsMatch
関数を使用すると、スライスの要素が順番を無視して要素の内容が期待と一致することを確かめることができます。
まず、テスト対象とする関数 ReturnSlice
を作成します。固定のスライスを返します。
package main
func ReturnSlice() []string {
return []string{"one", "two", "three"}
}
次に、ReturnSlice
関数をテストするファイルを作成します。
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestReturnSlice(t *testing.T) {
assert := assert.New(t)
got := ReturnSlice()
assert.ElementsMatch([]string{"three", "one", "two"}, got)
}
assert.New(t)
で*assert.Assertions
を初期化します。assert.ElementsMatch([]string{"three", "one", "two"}, got)
でスライスが期待通りであるか確かめます。ReturnSlice
関数が返すスライスと順番が異なっていますが、構成している要素は一致しているため、このテストはパスします。