問題タブ [dunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Midas/DataSnap プロジェクトでの DUnit テスト
Delphi 2006 の Midas/DataSnap プロジェクトで DUnit テストをセットアップする方法
編集
Dunit テストを TRemoteDataModule に設定する方法 Delphi 2006 のプロジェクト ウィザードは TRemoteDataModule では機能しません
delphi - DUnit でプライベート メソッドをテストするにはどうすればよいですか?
DUnit で単体テストを行っているクラスがあります。いくつかのパブリック メソッドとプライベート メソッドを含む多数のメソッドがあります。
このクラスの単体テストを作成するには、すべてのメソッドを公開する必要があります。
プライベートメソッドを宣言してテストできるようにする別の方法はありますが、パブリックではありませんか?
delphi - TSQLConnection.Connected = true の場合に Delphi DUnit テストを失敗させる方法
Delphi IDE を使用している場合、さまざまなプロパティのフィールドまたはテーブル リストに値を設定するときに、SQLConnection.Connected が "true" に自動的に変更されます。
Connected = true でリリースしたくないので、dfm で TSQLConnection.Connected が true のままになっているときに、dunit テストが失敗するようにする必要があります。
delphi - Delphi データ モジュールの単体テスト
すべてのビジネス ロジックがデータ モジュール (TSQLDataSets および TDataSetProviders) に存在する場合、コードをリファクタリングして、アプリケーションを単体テストにより適したものにするにはどうすればよいでしょうか?
delphi - DUnit CheckEquals の問題と通貨フィールド値の比較
DUnit でいくつかの通貨値を比較していますが、自分のマシンではまったく機能していません (他のマシンでは動作しますが、私のマシンでは動作しません)。
例:
レイズ:
次の比較を行うと、機能します。
問題は、値を CheckEquals メソッドに直接渡すと比較が機能しないのはなぜですか?
delphi - Delphiでのコードカバレッジの測定
DUnitでコードカバレッジを測定する方法はありますか?それとも、それを実現する無料のツールはありますか?そのために何を使いますか?あなたは通常どのようなコードカバレッジを求めていますか?
ジム・マッキース:詳細な回答をありがとう。私は、障害が発生した後の単体テストだけでなく、TDDアプローチの意味での単体テストについて話しています。いくつかの基本的な事前に作成された単体テストで達成できるコードカバレッジに興味があります。
delphi - DUnit で FastMM を使用してメモリ リークの追跡を有効にするにはどうすればよいですか?
GUI テスト ランナーでは、メモリ リーク チェックのメニュー項目が非アクティブ (グレー表示) になっています。それらをアクティブにするための、まだ見つけていない特別なスイッチはありますか?
DUnit 9.4 (Delphi 2009 または sourceforge Subversion リポジトリから) および FastMM4.92 を使用する
delphi - データ駆動型 DUnit テスト
DUnit が通常動作する方法は、いくつかの公開されたメソッドを記述し、DUnit がそれらをテストとして実行することです。やりたいことはちょっと違う。データに基づいて実行時にテストを作成したい。入力ファイルを処理して出力ファイルを作成する特定のモジュールをテストしようとしています。テスト入力ファイルのセットと、対応する既知の良好な出力ファイルがあります。アイデアは、入力を処理し、既知の適切なものに対して出力をチェックする、入力ファイルごとに 1 つのテストを動的に作成することです。
ただし、ここでの実際のデータ ソースは重要ではありません。難しいのは、DUnit をデータ駆動型の方法で動作させることです。この問題のために、データ ソースが単なる乱数ジェネレーターであると仮定します。以下に、問題の核心に迫る具体的な問題の例を示します。
実行時にいくつかのテスト オブジェクト (TTestCase など) を作成します。たとえば、10 個のテスト オブジェクトを作成します。
- ランダムに生成された整数から実行時に名前が付けられます。(「名前」とは、テストランナー ツリーに表示されるテストの名前を意味します。)
- ランダムな整数に基づいて成功または失敗します。偶数なら合格、奇数なら不合格。
DUnit の設計からは、このようなことが可能になるように十分な柔軟性を考慮して設計されているように見えます。私はそれがそうであるかどうかはわかりません。TAbstractTest と ITest から継承して独自のテスト クラスを作成しようとしましたが、いくつかの重要なメソッドにアクセスできませんでした。私も TTestCase から継承しようとしましたが、そのクラスは公開されたメソッドを実行するという考えと密接に結びついています (そして、テストはメソッドにちなんで名付けられているので、たとえば「go」と呼ばれるものを 1 つだけ持つことはできませんでした。すべてのテストは「go」と呼ばれ、すべてのテストに個別に名前を付けたい)。
または、代わりに、私がやりたいことができる DUnit に代わるものはありますか?
delphi - 古いコードと新しいコードの単体テストを開始するには?
ユニットテストの経験がほとんどないことを認めます。少し前に DUnit を試してみましたが、アプリケーションのクラス間に非常に多くの依存関係があったため、あきらめました。それはかなり大きな (約 150 万のソース行) Delphi アプリケーションであり、私たちはそれを維持するチームです。
今のところテストは、リリース前にそれを使用し、バグを報告する 1 人によって行われます。また、TestComplete 6 でいくつかの GUI テストをセットアップしましたが、アプリケーションの変更が原因で失敗することがよくあります。
Bold for Delphi は、データベースに対する永続化フレームワークとして使用されます。単体テストが進むべき道であることに全員が同意し、永続化フレームワークとして ECO を使用して DotNet で新しいアプリケーションを作成する予定です。
単体テストをどこから始めればよいかわかりません...良い本、URL、ベストプラクティスなどはありますか?
delphi - DUnitを使用してシングルトンクラスをテストするにはどうすればよいですか?
または、別のデザインパターンを使用する方が良いですか?