Size: a a a

2020 May 07

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
Dmitriy Kovel
Ок а как быть еще вот стаким кейсом.
Как и что вы тестируете если речь идет о методе который генерирует несколько сушностей в базе?
например метод создания встречи. когда он отрабатывает
в базе создается
встреча, уведомления каждому участнику, бронь на комнат ит.д.
надо ли что бы тест проверял не только входной json но еще и что были созданы и правильно созданы эти сущности
Какой-то неправильный метод. Метод не должен делать много вещей.
Но даже если это так, то следует создать несколько наборов тестовых данных, скормить методу и проверить создание сущностей, которые гарантированно должны создаться.
источник

DK

Dmitriy Kovel in JS for testing
ок т.е. всеже проверять создание внутренних сущностей нужно
источник

DK

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

B

Bola in JS for testing
Dmitriy Kovel
ок т.е. всеже проверять создание внутренних сущностей нужно
Сущность == запись в бд? Создаёте сущность, получаете данные из бд и проверяете
источник

DK

Dmitriy Kovel in JS for testing
т.е. один из expect у теста должен быть аля результат селекта в базу ?
источник

B

Bola in JS for testing
Но опять таки. Мы же говорим об апи тестах. Проверять надо конкретно апи, не спускаясь до методов.
Если же спускаемся до тестирования методов (функций), то это уже юниты.
Это мое мнение
источник

DK

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

DK

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

B

Bola in JS for testing
Dmitriy Kovel
т.е. один из expect у теста должен быть аля результат селекта в базу ?
Да. Дёрнули метод, сбегали в бд. Если соединение открыто, то запрос к записи -дело микро-миллисекунд, база же отдельная, Маленькая
источник

DK

Dmitriy Kovel in JS for testing
мы не тестируем все методы
но каркас фрэмворка устроен так что посути 1 ендпоинт это класс с CRUD методами
наши тесты тестят эти круды
источник

DK

Dmitriy Kovel in JS for testing
мы как бы что среднее между юнит и интеграционными
источник

B

Bola in JS for testing
Мы раньше писали такие синтетические тесты, которые не требуют бд, проверяли сами методы. Их было много и они толком ничего не давали.
Сейчас пишутся интеграционные с подключением бд, пустой с нужной нам схемой, симфони переключаем на него (основная база при необходимости поднимается для e2e). Таких тестов не сильно много, используем pairwise чтобы уменьшить число тестовых случаев. Проверяется модульно, то есть отношение к тестируемому объекту как цельному модулю, обеспечивающий какой-то конкретный функционал
источник

B

Bola in JS for testing
В вашем случае: функционал создания встречи. На входе может быть множество параметров. Итог: созданные записи в бд и сформированный json
источник

DK

Dmitriy Kovel in JS for testing
>>> Мы раньше писали такие синтетические тесты, которые не требуют бд, проверяли сами методы. Их было много и они толком ничего не давали.

вот я именно так и ощущаю эту ситуацию, что посути тестов много но спать спокойно не можеш
источник

DK

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

DK

Dmitriy Kovel in JS for testing
т.е. это нор в тесте делать запросы в базу на прямую скажем ?
источник

B

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