我在编写测试时偶然发现了一些奇怪的东西。我写了很多表格测试,我喜欢这种模式,最近我开始做一个使用 Ginkgo 的项目,我想像以前一样写一个表格测试。我花了几个小时不明白发生了什么,直到我发现这个:https ://github.com/onsi/ginkgo/issues/175#issuecomment-370015433
由于某种原因,它重新分配了循环体中的范围值,如下所示:
for _, test := range tests {
test := test
It(test.it, func() {
// test code reading values from the `test` variable
})
}
我在下面的表格上做了很多测试
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
// test code reading values from the `test` variable
})
}
我从来没有遇到过任何问题。我对这里的区别很感兴趣。