Я пытаюсь найти способ создать тестовую таблицу из золотых и входных файлов.
У меня следующая структура каталогов:
pkg
|
| mypackage/
| testdata/
| file1.input
| file1.golden
| file2.input
| file2.golden
| mypackage_test.go
| ...
Я пытаюсь найти эффективный способ создания тестовой таблицы из пары входных и золотых файлов:
type test struct {
input,
expected string
}
func getFiles() test {
input, _ := ioutil.ReadFile(filepath.Join("testdata", fmt.Sprintf("%s.%s", filename, "input")))
expected, := ioutil.ReadFile(filepath.Join("testdata", fmt.Sprintf("%s.%s", filename, "golden")))
return {string(input), string(expected)}
}
func getTable() []test {
return []test{getFiles("file1"), getFiles("file2"), getFiles("file3")}
}
func TestInputs(t *testing.T) {
table := getTable()
for _, tt := range table {
// perform the test
}
}
Я на самом деле не лучший в написании тестов, и приведенный выше код кажется немного хакерским. Есть ли лучший способ сделать то, что я пытаюсь?