6

Delphi7を使用しています。

私はDUnitを初めて使用しますが、DUnitを使用してどのようなテストケースを作成でき、どのように作成できるかが疑問です(これは私にとって非常に重要です)。

特定のボタンクリックイベントのテストケースを作成することは可能ですか?その場合、それぞれのデータベース関連のプロシージャまたは関数でより多くのユニットが呼び出されるコードの大きなセットが使用される可能性があるためです。その場合、テストケースを作成するための最良のアプローチは何ですか?(可能であれば、例や紹介は私にとって大きな助けになるでしょう)。

なぜなら、サンプルのDUnitプロジェクトでは、アプリケーションコードのセット全体を記述できないためです。これは、場合によっては、他のフォームを作成する必要があるためです。

だから、私の疑問は、そのような状況でテストケースをどのように書くか、そして一般的に、DUnitを使用してどのような種類のテストケースを書くことができるか、そして重要なことにどのように書くかです。

4

2 に答える 2

17

これはコメントのはずですが、コメントに収まらないので答えとして書いています。

私はあなたが2つのことをすることを提案します:

  • ビジネスロジックをインターフェイスから切り離すことを調査します(コードをリファクタリングします)。
    通常、コードを自己完結型のユニットに分割し、ユニットのコア機能を「ボトムアップ」で単体テストします。GUIの単体テストは行いません。グーグル例えば「デルファイユニットを分離するユニットテスト」

  • 単体テストでできることの例については、以下のリンクを確認してください。

http://www.howtodothings.com/computers/a928-automated-testing-with-dunit.html
http://www.nldelphi.com/cgi-bin/articles.exe/ShowArticle?ID=14697
https:// lists.sourceforge.net/lists/listinfo/dunit-interest
http://www.delphi-treff.de/tutorials
http://sourceitsoftware.blogspot.com/2008/10/getting-line-numbers-in-dunit- test.html
http://wiert.me/2010/09/08/delphi-use-tstrings-to-parse-non-standard-separated-strings-and-validate-it-with-dunit-tests/
http:/ /delphi.about.com/od/vclusing/a/autotestvcl.htm
http://dunit.sourceforge.net/
http://delphi.about.com/od/toppicks/tp/aatpdebug.htm
http:// www .nickhodges.com / post / Delphi-Mocks-The-Basics.aspx
http://www.finalbuilder.com/Resources/Blogs/tabid/458/EntryId/287/Introducing-Delphi-Mocks.aspx
https://github.com/Vsofttechnologies/delphi-mocks
http://www.uweraabe。 de / Blog / 2012/03/17 / a-dunit-folder-iterator-extension /
Delphiでのユニットテスト-どのように行っていますか?
http://members.optusnet.com.au/~mcnabp/
http://www.nickhodges.com/post/The-Vocabulary-of-Unit-Testing.aspx
http://hanselminutes.com/169/the- art-of-unit-testing-with-roy-osherove

于 2012-11-23T12:38:08.863 に答える
4

簡単なテストを書いて単体テストを学びましょう。簡単なテストは、ユニットテスト可能なクラスを作成するためのものです。ユニットテスト可能なクラスは、完全なDelphiGUIアプリケーションではありません。

最初の演習としてこれを試してください。

  1. 1からMAXINTまでの整数を素数のリストに因数分解できるクラスを作成します。素数を掛け合わせると、元の数になります。結果は、最小の要素から最大の要素に並べ替える必要があります。その結果リストのサイズが1の場合、結果は素数です。ゼロと負の数は例外を発生させます。

  2. すべてを一度に行うのではなく、「赤/緑」のテスト駆動開発を試してください。つまり、最初のテストが失敗するのに十分なコードを書くだけです。(最初のテストを記述し、構築しているクラスがコンパイルして実行するのに十分なコードを記述しますが、テストに失敗します。最初のテストに合格します。因数分解数全体を解決するのではなく、最初のテストに合格するだけです。)

  3. 失敗したテストを作成するプロセスを繰り返してから、クラスが1からMAXINTまでの任意の整数値を因数分解できるようになるまで(テストで)合格するために必要なコードを繰り返します。

「既存のレガシーアプリケーションへのワーキングユニットテスト」に関しては、「レガシーコードを効果的に使用する」という本をチェックする必要があります。大きな泥だんご(ボタンのOnClickコード)に単体テストを追加する方法について簡単に紹介することはできません。

于 2012-11-24T03:20:31.197 に答える