Стратегия тестирования данных для интеграционного тестирования

Мое приложение — страницы со списком: например, Продукты / Категории из магазина, Список врачей в Лос-Анджелесе в Справочнике или результаты поиска и т. Д.

Я реструктурирую / реорганизую / модернизирую устаревшее приложение, и при запуске единственным типом тестов, которые я могу написать, являются интеграционные тесты, например. используя Selenium / эквивалент, чтобы действительно попасть на страницу на сервере. Код, который срочно нуждается в рефакторинге, включает в себя чрезвычайно сложные и раздутые функции, которые выполняют фильтрацию списков. Мне нужны интеграционные тесты, чтобы гарантировать, что код не будет нарушен рефакторингом. По мере выполнения рефакторинга я буду постепенно интегрировать модульные тесты.

Я понимаю, как создать интеграционный тест, чтобы проверить, существует ли страница продукта и содержит ли она соответствующие данные. Я мог бы иметь несколько предопределенных продуктов в качестве исходных данных базы данных, которые будут сбрасываться перед каждым тестом и явно ссылаться на эти продукты в тесте.

Но как настроить тесты для какой-либо сложной страницы со списком, которая фильтрует продукты по цене / пользовательским атрибутам, врачей по специальности, городу и т. Д. + Результаты разбиваются на страницы? Если бы я, где это проверить вручную, мне нужно значительное количество тестовых данных и выборочная проверка, работают ли фильтры, как ожидается, и работает ли нумерация страниц. Очевидно, я пытаюсь автоматизировать этот процесс, но я борюсь с тем, как связать тесты с тестовыми данными.

Некоторые из подходов, о которых я думаю:

  1. Настройте тестовые данные, запишите, как в настоящее время отображаются результаты (перед рефакторингом кода), а затем жестко запишите код в тесте.

    Недостатки: Жесткие тестовые ожидания теста, которые зависят от большее количество тестовых данных кажется таким хрупким! Достаточно добавить одну запись в БД, чтобы исказить ожидаемые результаты от фильтра!

  2. Извлеките SQL, используемый в настоящее время кодом, запустите этот SQL в тесте и сравните результаты со страницами.

    Преимущества: Тест не прервется, если запись будет добавлена ​​в базу данных до тех пор, пока SQL-запрос не изменится.

    Недостатки: чувствует себя сложным.

  3. Переосмыслите, нужно ли тестировать страницы фильтра и какие части?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]