Шаблон Golang table testing

Допустим у нас имеется некая функция:

NormalizeEndpoint(endpointBefore string) string

Подготовим тесты на эту функцию:

func TestNormalizeEndpoints(t *testing.T) {
	type runnerTest struct {
		name           string
		endpointBefore string
		endpointAfter  string
	}

	var tests = []runnerTest{
		{"Test 1", "https://case1.com", "case1"},
                {"Test 2", "https://case2.com", "case2"},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			assert.Equal(t, tt.endpointAfter, NormalizeEndpoint(tt.endpointBefore))
		})
	}
}

При помощи нехитрой конструкции можно написать неплохие table тесты, которые легко обновлять и добавлять новые кейсы.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *