Как организовать подтесты через t.Run?

Ответ

t.Run(name, func(t *testing.T) { ... }) запускает подтест с именем name. Позволяет группировать проверки и видеть результат по каждому подтесту. Можно запускать выборочно: go test -run TestFoo/bar.

func TestSplit(t *testing.T) {
    t.Run("empty", func(t *testing.T) {
        got := Split("", ",")
        if len(got) != 0 { t.Fatal("want empty") }
    })
    t.Run("normal", func(t *testing.T) {
        got := Split("a,b", ",")
        if len(got) != 2 { t.Fatal("want 2") }
    })
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.