Возможно ли в Go перебирать набор функций?
У меня есть этот вспомогательный метод в моем файле модульного теста:
func helper(t *testing.T, f func(string) bool, stringArray []string, expected bool) {
for _, input := range stringArray {
if f(input) != expected {
t.Errorf("Expected '%v' for string: %v", !expected, input)
}
}
}
Вместо копирования / вставки линии и изменение второго перамитера следующим образом:
func Test_isUnique(t *testing.T) {
var valid = []string{"", "b", "ab", "acd", "asdfjkl", "aA"}
var invalid = []string{"aa", "avva", "aaa", "asdfweryhfda", "asdfjkal"}
helper(t, funcA, valid, true)
helper(t, funcB, invalid, false)
helper(t, funcC, valid, true)
helper(t, funcD, invalid, false)
helper(t, funcE, valid, true)
helper(t, funcF, invalid, false)
helper(t, funcG, valid, true)
helper(t, funcH, invalid, false)
}
Вместо этого я задаюсь вопросом, есть ли здесь опция для уменьшения этой функции до 4-х строчной функции тела
for f in [funcA, funcB, funcB, funcC, funcD, etc]: // Fix this
helper(t, f, valid, true)
helper(t, f, invalid, false)
Прости микс python / go выше :)