質問

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アプリケーションの機能/動作テストの実行で見たどの製品よりもエレガントでした。ただし、セットアップするには多少の努力が必要でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top