DUnitの通常の動作方法は、公開されたメソッドをいくつか書き、DUnitでテストとして実行することです。私がやりたいことは少し違っています。私は、データに基づいて実行時にテストを作成したいと思っています。出力ファイルを作成するために入力ファイルを処理する特定のモジュールをテストしようとしています。私は、対応する既知の良い出力ファイルを持つテスト入力ファイルのセットを持っています。この考え方は、入力を処理し、既知の良いものに対して出力をチェックする、各入力ファイル用のテストを動的に作成することです。データ駆動DUnitテスト
実際のデータソースはここでは重要ではありません。難しいのは、DUnitをデータ駆動型に動作させることです。この問題のために、データソースが単なる乱数生成器であるとします。各1
- は、実行時に名前が付けられが
は、実行時にいくつかのテストオブジェクト(TTestCaseまたは何でも)を作成し、それらの10と言う、:ここでは難易度の心に届く例の具体的な問題がありますランダムに生成された整数から。 ( '名前'によって、テストランナーツリーに表示されるテストの名前を意味します)
- ランダムな整数に基づいて合格または不合格になります。偶数のために渡す、奇数のために失敗する。
のDUnitの設計から、それはこのようなことを可能にするために念頭に置いて、十分な柔軟性を設計されたように、それは見えます。私はそれがあるとは確信していません。 TAbstractTestとITestを継承して独自のテストクラスを作成しようとしましたが、いくつかの重要なメソッドにアクセスできませんでした。私もTTestCaseを継承しようとしましたが、そのクラスは公開されたメソッドを実行するアイデアと密接に結びついています(テストはメソッドの名前が付けられているので、すべてのテストは「go」と呼ばれ、すべてのテストは個別に名前を付けたい)
また、DUnitの代わりに、私が望むことができるものがありますか?
それは素晴らしいです。ありがとう。私は似たようなことを試していましたが、道に沿っていくつかの間違いがありました。再度、感謝します。 –
私は助けてくれるとうれしいです。 –
データ駆動型のケースと普通のテストケースの両方を同じテストクラスに含めることをお勧めしますか? –