2

Delphi 2006 の Midas/DataSnap プロジェクトで DUnit テストをセットアップする方法

編集

Dunit テストを TRemoteDataModule に設定する方法 Delphi 2006 のプロジェクト ウィザードは TRemoteDataModule では機能しません

4

2 に答える 2

4

質問は完全には意味がありません。単体テストは、DataSnap サーバー内ではなく、別のプロジェクトで実行されます。一般に、データベースに接続するテストは単体テストではなく統合テストです。あなたがテストしたいのは、正確には何ですか?たとえば、TRemoteDataModule 内のユーティリティ メソッドの場合は、それらをクラス メソッドとして別のクラスに抽出し、そこでテストする必要があります。単体テストを実行するためにアプリケーション サーバーをインスタンス化する必要はありません。

于 2008-10-29T19:14:12.037 に答える
2

上記の簡潔な回答で申し訳ありません。投稿の編集中にリターンキーを押すと、iPad が投稿します。

dUnit は単体テストを実行するように設計されており、実行しようとしているのは単体テストではありません。

次の場合、テストは単体テストではありません。

  • データベースと通信します
  • ネットワークを介して通信します
  • ファイルシステムに触れる
  • 他の単体テストと同時に実行することはできません
  • それを実行するには、環境に対して特別なこと (構成ファイルの編集など) を行う必要があります。
  • 単独で実行することはできません

SOLID の原則 (特に単一責任の原則) に従っている場合、dUnit を使用してクラスをテストすることは (Midas/DataSnap 関連のロジックをテストせずに) かなり簡単なはずです。実際、Midas/DataSnap ロジックをテストする必要はありません。

ただし、Delphi アプリケーションで統合テストと動作テストを実行する方法はいくつかあります。

個人的には、TestComplete はどのような CI サーバーともうまく統合できず、テストは独自のバイナリ形式で保存されるため、使用しません (これにより、ソース管理システムで違いをマージしたり、変更を維持したりすることが問題になります)。

dSpecを試すこともできますが、Jody Dawkins がそれを維持しているのかどうかはわかりません。

一部のプロジェクトではAutoIt BASIC スクリプト言語を直接使用し、別のプロジェクトではその .NET アセンブリを使用して、NUnit と C# を使用して Delphi アプリケーションを駆動しました。完璧ではありませんが、NUnit / C# ソリューションは、Delphi アプリケーションの機能 / 動作テストを実行するために私が見たどのソリューションよりも洗練されていました。ただし、セットアップには多少の労力がかかりました。

于 2011-12-02T15:05:28.280 に答える