Delgus
@Delgus

Продвинутая функция для тестирования aka reflect.DeepEqual?

Мне нужна функция для сравнения двух сложных вложенных структур.
`reflect.DeepEqual` впринципе со своей миссией справляется, но она возвращает true или false, а я бы хотел иметь более подробную информацию - какое поле при сравнении дало неправильный результат, какой индекс был у структуры, если она была внутри слайса. Есть ли что-то подобное, уже реализованное. Тоесть, мне нужна функция, которая делает тоже самое что и reflect.DeepEqual,но которая вернет ошибку с описанием проблемы, а не true или false.
Может быть есть что-то уже готовое, не охота писать очередной велосипед.
  • Вопрос задан
  • 322 просмотра
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
Посоветую https://github.com/stretchr/testify
А именно пакет assert, он показывает diff структуры.
Diff:
--- Expected
+++ Actual
@@ -2,5 +2,5 @@
  (int) 1,
- (int) 2,
  (int) 3,
- (int) 4
+ (int) 5,
+ (int) 7
 }


Пользоваться просто:
assert.Equal(t, struct1, struct2)
где t это testing.T (единственный аргумент у тестовой функции)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы