Sobes.tech
Back to questions
Senior
4

Знаешь, что такое табличное тестирование (table-driven tests)?

Companies where asked
sber tech

Answer from AI

sobes.tech AI

Табличное тестирование (table-driven tests) — это подход к написанию тестов, при котором набор входных данных и ожидаемых результатов описывается в виде таблицы (обычно слайса структур), а затем тестовый код итерируется по этой таблице, выполняя проверки для каждого набора данных.

Это позволяет легко добавлять новые случаи, уменьшает дублирование кода и улучшает читаемость.

Пример на Go:

func TestSum(t *testing.T) {
    tests := []struct {
        name     string
        a, b     int
        expected int
    }{
        {"positive numbers", 2, 3, 5},
        {"zero", 0, 0, 0},
        {"negative numbers", -1, -2, -3},
    }

    for _, tt := range tests {
        t.Run(tt.name, func(t *testing.T) {
            result := Sum(tt.a, tt.b)
            if result != tt.expected {
                t.Errorf("Sum(%d, %d) = %d; want %d", tt.a, tt.b, result, tt.expected)
            }
        })
    }
}

Здесь tests — таблица с тестовыми случаями, а цикл запускает тест для каждого набора данных.