к удаленным сервисам и сохраняет их в БД, а потом отдает на респонс
У меня в БД апсерт, поэтому сохранение Id и проверку его в ответе мне желательно учитывать, удаленные сервисы я замокал
Можно ли как-то запускать в тестах эти горутины в очереди последовательно?)
Есть какие-то бестпрактикес кроме GOMAXPROCS? Ведь, как я понимаю, GOMAXPROCS распространится на все тесты, а они вроде как тоже в горутинах выполняются?
ты же можешь тесты в 1 поток пустить?
как-то кроме GOMAXPROCS?
ага у тестов свой конфиг для этого есть
а можно этот флаг накинуть только на определенный тег? прям в файле с тестом, аля //go:build myTag // +build myTag
я так редко извращаюсь так что только знаю что он есть)
видимо, всё равно не мой кейс, код обработчика всё равно запускается в рандомно, а мне надо последовательно в тестах) пойду интерфейс запилю на запуск горутин, вестимо 😁
мб но стремные тесты которые пускаются в 1 потом и в строгой последовательности
ну это интеграционные тесты с БД, где стоит order by ID, а данные в эту БД прилетают в рандомной последовательности, писать игнор последовательности в тестах наверное сложнее, чем интерфейс ибо я использую для тестов gonkey 🤷♂️
А что вы конкретно тестируете? Что при параллельной работе данные правильно в бд окажутся?
мой сервис бегает в удаленные сервисы, стягивает оттуда данные и сохраняет в БД, а потом отдает уже моим пользователям агрегированные данные по сути мне порядок не столь нужен, этот признак нужен лишь для учета, новые это данные или обновление через апсерт
так почему вы не можете проверить, что он сбегал в моки, потом вернул агрегат?
вы работали с gonkey?
gonkey - это тестовый фреймворк, я настраиваю свой вебсервер и отдаю ему а потом просто пишу тесткейсы в yaml-файлах выглядит всё чистенько и довольно читаемо и пока я не достиг стадии "борьбы с фреймворком" мне пока легче допилить интерфейс на запуск горутин, чем пилить свои тесты 🤷♂️ если мои тесты разрастуться до такого состояния, я обязательно запилю тесты на агрегат)
нет. я так понимаю, проблема в том, что у вас в респонзе данные в одном порядке, а сервис возвращает в другом?
именно так, сервис возвращает в порядке, в каком сохранил в БД, а я в тестовом респонсе уже захардкодил определенный порядок
хм. я бы в таком случае просто отсортировал на выходе записи не по id. Так и апи будет более предсказуемым.
https://github.com/lamoda/gonkey/blob/master/checker/response_body/response_body.go#L65 смотрите, там есть параметр ignoreArraysOrdering наверняка если его корректно выставить, ваш кейс решится сам собой
спасиб мил человек, вроде работает О_о
я рекомендую в таких случаях сразу лезть в исходники и смотреть, наверняка там таких простых недокументированных штук - вагон и тележка
да я смотрю периодически, просто сейчас времени особо разбираться нет
Обсуждают сегодня