Написание тестов для фоновых процессов (например, фоновых заданий) - PullRequest
1 голос
/ 06 февраля 2012

У меня есть веб-приложение, созданное с использованием Spring, которое содержит несколько заданий.

Типичная задача - запустить базу данных, получить список измененных клиентов, сгенерировать файл и отправить его по FTP.У меня вопрос, как пройти модульное тестирование в этой работе?

Должен ли я писать модульные тесты только для каждого "шага" работы, например:

  • Тест для методакоторый выбирает измененных клиентов.
  • Тест для кода генерации файла.
  • Тест для FTP'-кода.

Но в этом случае я пропущу«Интеграционный» тестовый пример для вышеуказанной работыТакже Эмма сообщает, что в форме задания есть непроверенный код.

Любые мысли приветствуются.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

Юнит-тестирование - это тестирование только одного класса за раз.Это означает, что вы должны издеваться над зависимостями.Весна отлично подходит для этого.

Я бы посоветовал Мокито делать насмешки.Это изумительный инструмент, и вы изучите TDD, который также является способом написания прекрасного кода.

Интеграционный тест - это еще одна тема, требующая другой стратегии.

Тестирование базы данных выполняетсярасширение AbstractTransactionalJUnit4SpringContextTests.Вы найдете примеры в сети.В общем, вы также используете базу данных в памяти для выполнения этих тестов (h2 хорош для этого).Это можно сделать на этапе модульного тестирования.

Создание файла можно выполнить как модульное тестирование.Вы генерируете файлы и проверяете правильный контент.Или ошибки ...

Для части FTP я бы сказал, что это скорее часть интеграционного теста, если только вы не можете порождать FTP-сервер из скрипта сборки.

0 голосов
/ 06 февраля 2012

Вы должны написать модульный тест для каждого шага. Может быть, вам нужно высмеять некоторые методы.

И затем, вы можете написать интеграционный тест для проверки целостности, но, возможно, вам понадобится заглушить некоторые части (например, FTP-сервер, используя встроенный FTP-сервер в вашем тесте).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...