Сравните две структуры одного типа - PullRequest
0 голосов
/ 03 мая 2018

Ситуация, в которой я нахожусь:

Я пишу инструмент для тестирования API. И хотите сравнить фактические результаты API с ожидаемым результатом.

  1. Я обращаюсь к json API и анализирую результат в структуре (api_result)
  2. Я загружаю предопределенный json из локального хранилища, а также анализирую его в структуру того же типа (Ожидаемый_результат)
  3. Теперь я хочу сравнить их

Что я хочу архивировать:

Эти две структуры результата типа должны сравниваться на основе полей в поле Ожидаемый_результат.

* ** 1023 тысяча двадцать-дв * Пример
  • Ожидаемый_результат имеет поля b1, b2, b4
  • api_result имеет поля b2, b4, b5, b6

Теперь я хочу сравнить только поля b1, b2, b4, а также только если они не пусты (0, "", nil).

Другие поля в api_result не важны.

Пока пробовал

Я уже копался в рефлексе.DeepEqual () и затем в go-cmp. Но в обоих случаях проблема заключается в том, что функции сравнения симметричны (или должны быть) (func (x, y) == func (y, x)).

С этой симметрией я не могу различить два сравниваемых элемента.

Большое спасибо за ваши идеи и помощь!

...