Вы просто находитесь в семантической серой области.
- Системные тесты охватывают всю систему от начала до конца.
- Модульные тесты могут использоваться для описания подсегмента сквозного цикла.
В этом случае ваши модульные тесты кода вашего приложения могут / не могут попасть в базу данных, но у вас могут / могут быть модульные тесты, охватывающие хранимые процедуры вашей базы данных ...
В основном, разделите ваше приложение на вещи, которые будут проверяться на разделах, которые имеют смысл. Если вы выберете неправильную строку раздела, вы столкнетесь с большой проблемой обслуживания кода с фиктивными объектами, тестовыми лесами и прочим ...
Обычный способ использования веб-приложений - написать серию модульных тестов, которые проверяют уровень доступа к данным ...
Затем напишите серию модульных тестов, которые тестируют прикладной уровень (включая уровень данных) ...
И, наконец, напишите несколько системных тестов на основе браузера ...
Хитрость заключается в том, чтобы вводить и выводить информацию только из среднего набора - прикладного уровня - через API, а не копаться в базе данных, чтобы увидеть, работает ли что-то. Таким образом, ваши тесты не будут нарушены, если вы измените схему данных.
Но иногда (как я на самом деле сейчас делаю, когда пишу это) вы ДОЛЖНЫ изучить базу данных, чтобы создать значимый и надежный набор тестов (я тестирую протоколы передачи с сервера на сервер).
Сосредоточьтесь на том, как получить максимальный охват и стабильность кода для вашего приложения, при этом создавая наименьшее количество лесов для тестирования и избегая хрупкости в вашем наборе тестов.