Midas / DataSnapプロジェクトでのDUnitテスト
-
05-07-2019 - |
質問
Delphi 2006のMidas / DataSnapプロジェクトでDUnitテストをセットアップする方法
編集
どのようにしてDUnitテストをTRemoteDataModuleに設定しますか Delphi 2006のプロジェクトウィザードはTRemoteDataModuleで動作しません
解決
質問は完全に意味をなさない。単体テストは、DataSnapサーバー内ではなく、個別のプロジェクトで実行されます。一般に、データベースに接続するテストは、単体テストではなく統合テストです。何をテストしますか?たとえば、TRemoteDataModule内のユーティリティメソッドの場合、それらをクラスメソッドとして別のクラスに抽出し、そこでテストする必要があります。ユニットテストを実行するためにアプリケーションサーバーをインスタンス化する必要はありません。
他のヒント
上記の簡潔な回答は申し訳ありませんが、投稿の編集中にReturnキーを押すとiPadが投稿します。
dUnitは単体テストを実行するように設計されており、あなたがやろうとしているのは単体テストではありません。
次の場合、テストは単体テストではありません。
- データベースと通信します
- ネットワークを介して通信します
- ファイルシステムに触れる
- 他の単体テストと同時に実行することはできません
- 実行するには、環境に対して特別なこと(構成ファイルの編集など)を行う必要があります。
- 単独で実行することはできません
SOLIDの原則(特に単一責任の原則)に従う場合、dUnitを使用して(Midas / DataSnap関連のロジックをテストせずに)クラスをテストするのはかなり簡単です。実際、Midas / DataSnapロジックをテストする必要はありません。
しかし、Delphiアプリケーションで統合および動作テストを実行する方法があります。
個人的に、私はTestCompleteを使用しません。これは、あらゆる種類のCIサーバーとうまく統合できず、テストが独自のバイナリ形式で保存されるためです(ソース管理システムの変更をマージしたり、変更を維持するのに問題があります)。
dSpec を試すこともできますが、Jody Dawkinsがそれを維持していることはわかりません。
AutoIt BASICスクリプト言語をいくつかのプロジェクトで直接使用し、別のNUnitとC#を使用してDelphiアプリケーションを駆動する.NETアセンブリ。完璧ではありませんが、NUnit / C#ソリューションは、Delphiアプリケーションの機能/動作テストの実行で見たどの製品よりもエレガントでした。ただし、セットアップするには多少の努力が必要でした。