0

我在编写测试时偶然发现了一些奇怪的东西。我写了很多表格测试,我喜欢这种模式,最近我开始做一个使用 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
    })
}

我从来没有遇到过任何问题。我对这里的区别很感兴趣。

4

0 回答 0