Как бороться со случайными входными и выходными значениями
У меня есть интерфейс оболочки, который определяет функцию Downloadfile. Проблема заключается в том, что один из параметров имеет случайное временное имя директории, а вывод - случайное временное имя файла. Как мне издеваться, используя https://github.com/golang/mock чтобы я мог проверить функцию addFile
var wrapper
func Test(t *testing.T) {
ctrl, _ := gomock.WithContext(context.Background(), t)
defer ctrl.Finish()
m := mock.NewMockWrapperInterface(ctrl)
m.EXPECT().DownloadFile("myfile", "/var/folders/ls/???").Return("/var/folders/ls/???", nil)
wrapper = m
path, err := addFile(myfile, key)
...
}
func addFile(myfile, key) (string, error) {
tmpDirectory := helper.CreateTemporaryDirectory(objectKey)
defer helper.CleanUpDirectory(tmpDirectory)
return wrapper.DownloadFile(myfile, tmpDirectory)
}
1 ответ
Выяснили, как работает matcher. Это то, что мне нужно было сделать
m.EXPECT().DownloadFile("myfile", gomock.Any()).Return("/var/folders/ls/ok", nil)