猿问

testify/assert.Contains 如何与地图一起使用?

该文档显示此作为一个例子:


assert.Contains(t, {"Hello": "World"}, "Hello", "But {'Hello': 'World'} does contain 'Hello'")


但是运行这个失败


mymap := map[string]string{}

mymap["Hello"] = "World"

assert.Contains(t, mymap, "Hello")

导致错误:


Error:     "map[Hello:World]" could not be applied builtin len()


切换 mymap 和 "hello" 结果如下:


Error:     "Hello" does not contain "map[Hello:World]"


隔江千里
浏览 217回答 2
2回答

jeck猫

我检查了一下,它对我来说很好用。您确定显示的错误与该代码有关吗?这就是我尝试过的:package mainimport "testing"import "github.com/stretchr/testify/assert"func TestContains(t *testing.T) {    mymap := map[string]string{}    mymap["Hello"] = "World"    assert.Contains(t, mymap, "Hello")}并且测试不会失败:→ go test stackoverflow/35387510/contains_test.gook      command-line-arguments  0.009s

慕容708150

看起来您必须使用类型断言package mainimport "testing"import "github.com/stretchr/testify/assert"func TestContains(t *testing.T) {     // Initialize assert as below    assert := assert.New(t)    mymap := map[string]string{}    mymap["Hello"] = "World"    //then no need to pass t in contains    assert.Contains(mymap, "Hello")}在包含类型断言的文档中
随时随地看视频慕课网APP

相关分类

Go
我要回答