Добро пожаловать на SO!
То, что у вас есть, - это скорее приемочный тест.Это также, вероятно, будет считаться интеграционным тестом.
В этом тесте вы тестируете (дикая догадка - я не знаю, что именно делает ваш сервис, но, надеюсь, вы поймете идею):
- тот факт, что ваш сервер правильно работает
- , вероятно, один или несколько методов аутентификации, которые проверяют, что пользователь имеет все необходимые права для запроса этого URI
- , вероятно, многодругих промежуточных программных средств, правильной подготовки запроса, форматирования данных и т. д.
- может быть несколько взад-вперед с базой данных
- , возможно, немного инструментов для ведения журнала, отладки и т. д.
- основная функциональность вашего сервиса (возврат списка встреч в правильном формате)
Это много всего за один тест!И многие вещи могут пойти не так, если всего одна строка в сотнях строк кода, управляющих всем этим (некоторые вы написали, некоторые другие написали), содержит одну ошибку.И, наконец, единственное, что вас волнует, - это массив с несколькими элементами, который представляет собой функциональность, ожидаемую вашим пользователем, или accepts
.Вот почему мы называем это UAT
(или пользовательские приемочные тесты).
Вы также можете сказать, что это integration
тест, поскольку вы тестируете отдельные части вашего приложения: сервер иdatabase.
Вы также можете услышать о E2E
(сквозных) тестах: это, например, тестирование того, что веб-интерфейс также правильно отображает все собрания, полученные из только что протестированного бэкэнда.И многие другие типы тестов ...
Модульные тесты действительно тестируют самые маленькие тестируемые единицы кода, которые вы можете найти.В вашем сценарии существует множество функций во время выполнения вашего запроса.При заданном параметре X функция Y всегда будет возвращать Z?А как насчет функций A, B, C, D ...?
Иными словами: если ваш тест не пройден, вы знаете, какая часть вашего кода не работает?Что, если в вашем коде есть 2 проблемы, но так как запрос не выполняется при первой ошибке, как вы можете узнать?Кроме того: как вы можете быть уверены, что эта часть больше никогда не выйдет из строя?
Написание тестов немного утомительно, и есть много способов сделать это правильно.Иногда невозможно (или очень сложно) протестировать одну функцию без какой-либо другой зависимости (например, функцию, которая вызывает базу данных), и нельзя ожидать, что вы протестируете 100% очень очень большого проекта.Но вы должны стремиться к «достаточно большому» числу там.
И иногда проблема заключается в «склеивании» между проверенным модулем кодом.Проблемы с сетью могут возникать между прекрасно работающими функциями, условиями гонки или ... и в этом случае вам нужны интеграционные тесты.