DUnit Тестирование в проекте Midas/DataSnap

Как настроить DUnit Testing в проекте Midas/DataSnap в Delphi 2006

редактировать

Как настроить Dunit Test в TRemoteDataModule Мастер проектов в Delphi 2006 не работает с TRemoteDataModule

2 ответа

Решение

Вопрос не совсем имеет смысл. Модульные тесты выполняются в отдельном проекте, а не на вашем сервере DataSnap. Как правило, тесты, которые подключаются к базе данных, являются интеграционными тестами, а не модульными тестами. Что именно, что вы хотите проверить? Если это служебные методы, скажем, в TRemoteDataModule, вы должны выделить их в отдельный класс как методы класса и протестировать их там. Вам не нужно создавать экземпляр сервера приложений для выполнения модульных тестов.

Извините за краткий ответ выше, iPad публикует сообщения всякий раз, когда я нажимаю клавишу возврата при редактировании сообщения.

dUnit предназначен для выполнения модульного тестирования, и вы НЕ пытаетесь выполнить модульное тестирование.

Тест не является модульным тестом, если:

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

Если вы следуете принципам SOLID (особенно принципу единой ответственности), использование dUnit для тестирования вашего класса (без тестирования логики, связанной с Midas/DataSnap) должно быть достаточно простым. И действительно, вам не нужно проверять логику Midas/DataSnap.

Но существуют способы проведения интеграционных и поведенческих тестов в приложениях Delphi.

Лично я бы не использовал TestComplete, потому что он плохо интегрируется с каким-либо CI-сервером, а тесты хранятся в проприетарном двоичном формате (что затрудняет слияние различий или сохранение изменений в любой системе контроля версий).

Вы можете попробовать dSpec, но я не уверен, что Джоди Докинз его поддерживает.

Я использовал язык сценариев AutoIt BASIC непосредственно в некоторых проектах, а также его сборку.NET для управления приложением Delphi с использованием NUnit и C# в другом. Хотя решение NUnit / C# было не идеальным, оно было более элегантным, чем все, что я видел для выполнения функциональных / поведенческих тестов приложений Delphi. Однако для его настройки потребовалось некоторое усилие.

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