Проблема заключается в том, что вы хотите преобразовать несколько возвращаемых значений в одно значение, которое может использоваться assert.Equal.
Это можно сделать, передав несколько значений в функцию с переменным числом, которая преобразует все значения (независимо от их количества) в один фрагмент интерфейсов. Этот фрагмент затем обрабатывается как одно значение и работает довольно хорошо с testify assert.Equal.
Функция shim, упомянутая в другом месте, близка, но имеет фиксированное количество параметров. makeIS () ниже меньше кода, чище, проще и работает с любым количеством возвращаемых значений / параметров. Поместите эту функцию в ваш тестовый пакет.
// makeIS will convert any number of parameters to a []interface{}
func makeIS(v ...interface{}) []interface{} {
return v
}
Теперь утверждение работает следующим образом
assert.Equal(t, makeIS(eX,eY), makeIS(iReturnTwoValues())
Свидетельство знает, как сделать сравнение, и очень хорошо сообщает о различиях в отдельных параметрах. Обратите внимание, что это дает дополнительное преимущество «выглядеть как» вызов, который вы хотите проверить, с двумя целевыми значениями слева от функции.