鉴于我运行以下测试:
const unchanged = "unchanged"
var myField = unchanged
func TestChangeField1(t *testing.T) {
if myField != unchanged {
t.FailNow()
}
myField = "changed"
}
func TestChangeField2(t *testing.T) {
if myField != unchanged {
t.FailNow()
}
myField = "changed"
}
第二个测试将失败,因为变量已在另一个测试中更改。
我知道有一些变通方法,例如使用测试套件,它提供挂钩来将此值重置为测试之间的初始状态。但首先这意味着一些开销,其次我觉得整个行为令人惊讶,所以我不能确定我项目中的每个人都记得并遵守这一点。
有没有更直接的解决方案go test,比如我还没有找到的标志?
莫回无
相关分类