Я пишу модульный тест в golang по https://github.com/stretchr/testify Предположим, у меня есть метод ниже,
func DoSomething(result interface{}) error {
// write some data to result
return nil
}
, поэтому вызывающий абонент может вызвать DoSomething
следующим образом
result := &SomeStruct{}
err := DoSomething(result)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("The result is", result)
}
Теперь я знаю, как использовать testify
или некоторые другие инструменты для насмешки, чтобы смоделировать возвращаемое значение (здесь оно err
) чем-то вроде
mockObj.On("DoSomething", mock.Anything).Return(errors.New("mock error"))
Мой вопрос: как в этом сценарии я высмеиваю result
аргумент?
Поскольку result
не возвращаемое значение, а аргумент, вызывающая сторона вызывает его, передавая указатель структуры, и функция модифицирует это.