Начало работы с JMock и Spring 3

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

Я гуглил. Некоторые страницы говорят, что только интерфейсы могут быть подделаны. Некоторые говорят, что все объекты могут быть высмеяны. Некоторые даже говорят, что ДАО не должны подвергаться насмешкам. Я не совсем понимаю.

Может кто-нибудь сказать мне, является ли JMock необходим в тестировании приложений Spring и с чего начать?

1 ответ

Насмешка будет необходима, когда

  • Вы хотите создать объект данных на лету без постоянного хранилища и использовать его во время тестирования.
  • Вы хотите смоделировать операцию, фактически не выполняя ее.

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

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

Мы делаем что-то подобное, где

  • наши тестовые данные представлены в формате JSON и загружаются в базу данных HSQL в памяти при запуске нашего тестового набора (с использованием пользовательского загрузчика).
  • наши внешние сервисные клиенты подвергаются проверке, поэтому мы не вызываем службы во время тестирования, а вместо этого возвращаем проверенные ответы.
  • в конце тестирования база данных HSQL просто отбрасывается, поэтому нет необходимости очищать данные теста.

НТН.

Другие вопросы по тегам