Size: a a a

2020 May 07

B

Bola in JS for testing
Dmitriy Kovel
>> Итог: созданные записи в бд и сформированный json
т.е. вы рекоммендуете проверить респонс и отдельно сходить в базу и глянуть правильно ли добавились записи ?
Если ваш главный этот метод формирует json не по результатам своего исполнения, а данные берет из бд, то можно ограничиться json`ом. Но вы выше написали, что доверия нет
источник

DK

Dmitriy Kovel in JS for testing
тут не только в доверии дело, он данные не все использует
источник

DK

Dmitriy Kovel in JS for testing
например он возвращает id митинга и все
источник

DK

Dmitriy Kovel in JS for testing
Bola
Бегать в бд -это нормально.
А если есть апи, который возвращает бронь (другие ваши сущности), то лучше дернуть апи.
ну да если api позволяет дернуть по условию нужному
источник

DK

Dmitriy Kovel in JS for testing
вобщем я примерно прояснил для себя
источник

DK

Dmitriy Kovel in JS for testing
спасиюо
источник

DK

Dmitriy Kovel in JS for testing
итог: нужно почти все переделать )))
источник

DK

Dmitriy Kovel in JS for testing
бггг
источник

B

Bola in JS for testing
Я думаю, утром придут остальные. Услышим их мнения.
источник

DK

Dmitriy Kovel in JS for testing
а что насчет плана тестирования, может тоже что посоветуете

это тоже на уровне ощунения, потомучто у нас вроде как api ендпоинты, и вроде как все абстрактно схожи, но набор тестов разный
источник

DK

Dmitriy Kovel in JS for testing
мне кажеться это не очень хорошо
источник

B

Bola in JS for testing
Ещё зависит, как написаны методы, тестируемы ли они. Может получиться так, что тестами можете покрыть только ваш главный класс)
источник

DK

Dmitriy Kovel in JS for testing
я говорю про то что мол, какждый сервис должен быть протестирован на
-  получение корректно результата по id
-  получение корректно результата по массиву id
-  получение корректно результата по специфическим условиям
- плю тесты на все исключительные ситуации
источник

VG

Vitalii Grygoruk in JS for testing
тестировать с базой, точка. у вас же на продакшене приложение будет с базой крутиться а не с моками. А если тесты медленне - то скорее всего не в одной базе проблема… ищите узкое место. Вот пример что пишут о ускорении postgres для тестов - https://stackoverflow.com/questions/9407442/optimise-postgresql-for-fast-testing)

если нужно проверить что создалось несколько сущностей по API запросу - добавьте expect-ов / ассертов в тест кейс просто которые ходят в базу и смотрят что там создалось. Все как вам @bboollaatt выше советовал.

Если у вас код тестов и приложения в одном кодебейсе (я надеюсь так и есть из того что вы написали выше) - то можете запускать и тесты и поднимать приложение in-process и обернуть каждый test case в DB transaction, которая создается beforeEach и откатывается в afterEach (у нас такая штуковина прикручена на API проекте с JS, Express, Sequelize, Postgresql). Это может помочь вам решить вопрос с “изоляцией” тестов.
источник

DK

Dmitriy Kovel in JS for testing
>>> и обернуть каждый test case в DB transaction, которая создается beforeEach и откатывается в afterEach (у нас такая штуковина прикручена на API проекте с JS, Express, Sequelize, Postgresql).

прикольно, не думаю что нам поможет но идея интересная
источник

DK

Dmitriy Kovel in JS for testing
у нас mongoDb под mongoose
источник

DK

Dmitriy Kovel in JS for testing
но mongo в кластере, а mongoose походу не умеет с транзакция работать в такой связке
источник

VG

Vitalii Grygoruk in JS for testing
в mongo я не шарю, а для тестов вам 1 монго инстанса локально в докер контейнере не хватит?
источник

DK

Dmitriy Kovel in JS for testing
хватит так сейчас и раним
источник

DK

Dmitriy Kovel in JS for testing
но напроде не так
источник