簡體   English   中英

Midas / DataSnap項目中的DUnit測試

[英]DUnit Testing in a Midas/DataSnap project

如何在Delphi 2006的Midas / DataSnap項目中設置DUnit測試

編輯

如何將Dunit測試設置到TRemoteDataModule中Delphi 2006中的項目向導不適用於TRemoteDataModule

這個問題並不完全有意義。 單元測試在單獨的項目中執行,而不是在DataSnap服務器中執行。 通常,連接到數據庫的測試是集成測試,而不是單元測試。 什么是您要測試的? 如果它是TRemoteDataModule之類的實用方法,則應將它們作為類方法提取到一個單獨的類中,並在那里進行測試。 您不必實例化應用程序服務器即可執行單元測試。

很抱歉上面的簡短回答,每當我在編輯帖子時按回車鍵,iPad都會發布帖子。

dUnit旨在執行單元測試,而您要執行的操作不是單元測試。

在以下情況下,測試不是單元測試:

  • 它與數據庫對話
  • 它通過網絡通信
  • 它觸及文件系統
  • 它不能與您的任何其他單元測試同時運行
  • 您必須對環境做一些特殊的事情(例如編輯配置文件)才能運行它。
  • 它不能孤立運行

如果您遵循SOLID原則(尤其是單一職責原則),則使用dUnit測試您的類(不測試與Midas / DataSnap相關的邏輯)應該相當簡單。 實際上,您不需要測試Midas / DataSnap邏輯。

但是,有一些方法可以在Delphi應用程序上執行集成和行為測試。

就我個人而言,我不會使用TestComplete,因為它不能與任何類型的CI服務器很好地集成,並且測試以專有的二進制格式存儲(這使得合並差異或維護任何源代碼管理系統中的問題成為問題)。

您可以嘗試使用dSpec ,但是我不確定Jody Dawkins是否會繼續維護它。

我直接在某些項目上使用了AutoIt BASIC腳本語言,還使用了.NET程序集在另一個項目上使用NUnit和C#驅動Delphi應用程序。 盡管並不完美,但NUnit / C#解決方案比我執行功能/行為測試Delphi應用程序時看到的任何方案都要優雅。 雖然確實需要一些努力才能將其設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM