Учитывая, что я запускаю следующие тесты:
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
, как флаг, который я еще не нашел?