Поблочное тестирование Быть в спящем режиме управляемого приложения? [закрытый]

33
задан Prof. Falken 25 May 2011 в 07:06
поделиться

8 ответов

Лучшая практика? Я использую Spring и делаю все мои тесты транзакционными. Я выполняю тест и откатываю все изменения, таким образом, я не изменяю состояние базы данных.

3
ответ дан 27 November 2019 в 19:30
поделиться

Мне нравится использовать в памяти hsqldb для тестирования. Процесс для каждого в спящем режиме, POJO:

  1. Создают объект
  2. , Сохраняются, он к DB
  3. Очищается, сессия
  4. Добираются, он от DB
  5. Утверждает, что объекты равны.

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

2
ответ дан 27 November 2019 в 19:30
поделиться

Следует иметь в виду различие между поблочным тестированием и интеграционным тестированием.

Модульные тесты должны тестировать код без любых внешних зависимостей. Эти зависимости дразнят с помощью платформы как, например, JMock.

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

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

я записал приложение один, что единица протестировала сеть (с Spring MVC, это легко), и Уровни служб, а также объекты области. Но я оставил ДАО В ПОКОЕ, потому что я не хотел писать набор медленных интеграционных тестов. Если бы у меня было больше людей, штатных, я пошел бы с интеграционными тестами также, но в этом случае я не чувствовал, что проведенное время будет стоить того.

17
ответ дан 27 November 2019 в 19:30
поделиться

Что касается лучших практик:

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

можно также использовать DbUnit, расширение JUnit, чтобы легко заполнить базу данных ожидаемыми строками и поместить его в известное состояние перед выполнением Вашего Быть в спящем режиме тесты.

5
ответ дан 27 November 2019 в 19:30
поделиться

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

можно также посмотреть CaveatEmptor, который приложение приложения, разработанное для книги ", Персистентность Java с В спящем режиме"

2
ответ дан 27 November 2019 в 19:30
поделиться

Несомненно, Вы были бы модульный тест Ваш уровень персистентности, если он не был записан в, в спящем режиме, не так ли?

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

0
ответ дан 27 November 2019 в 19:30
поделиться

Вы могли использовать Spring для помощи здесь.

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

0
ответ дан 27 November 2019 в 19:30
поделиться

Запишите простой слой, который передает запросы для Спящего режима. Затем пользуйтесь библиотекой насмешки как EasyMock или JMock, чтобы утверждать, что Ваш слой Быть-в-спящем-режиме-фанеры правильно называют Ваши классы приложений. Это приятно описано в частично полном книга JMock (прокрутите вниз к тестовому запаху, "все дразнят").

0
ответ дан 27 November 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: