2009-08-20 7 views
2

これは「設計/アーキテクチャ」に関する質問ですので、技術的な詳細を教えていただく必要はありません。あなたのxunitテストがロードするテストケースを保存する最良の方法は何ですか?

xunit単体テストの実行方法、テスト結果の記録方法、成功したか失敗したかを表示する方法を示していますが、インターネット上のすべての例がハードコードされていて、テストケース(nunitまたはjunit)を効率的に格納して、数百または数千のテストを構築してテストエンジンにロードできるようにする方法について説明します。

これは、XMLファイルまたはデータベーステーブルを使用して行われると仮定します。テストコードによって読み込まれるテストを保存するための最良の方法だと思っていることを共有する人はいますか?私は、最終的に典型的なWebワークフローアプリケーションのための何千ものテストを行うテストフレームワークを書くことができる必要があり、それを正しい方法で実行したい。

あなたはデータ駆動型テスト」で取得している場合はたぶんなど

答えて

0

「Googleの高度な検索」多くのオプションを持っているページ、およびバリエーションの数百人のユニットテストを行うためのコンテキストであなたの答えを記述"なら、RowTestアプローチと同等のものを見てください。 NUnitはこれをMBUnitから借用しました。 xUnitはTheory and PropertyData経由でさらに拡張可能なソリューションを提供しているようですが、コード内で入力を指定する必要はありません。任意の関数、スプレッドシートまたはSQL Serverデータベースから入力を生成することができます。

私はRowtestメソッド(これもまれです)には何も必要がありませんでした。だから、どんなドラゴンについても警告することはできません。代わりに、あなたが上記のアプローチをすることができない場合は、これを行うためにFit/Fitnesseを使用することもできます。技術的に受け入れテストではありません。

「テストフレームワーク」に関しては、多分あなたがYAGNIかもしれません。始めて、小さく始めて、シンプルにして、時間をかけてテストデザインを成長させてください。

1

ここで重要なことは、それを単純に保ち、「自然に」成長させることです。テストは他のコードと同じくらい重要であり、精力的にリファクタリングする必要があります。

UIからデータベース全体をテストする統合テストとは対照的に、実際の単体テストとは、ソリューションでそれらを実行するために必要なすべてを保持することです開発者はソースファイルを更新するときに常に最新のものを得ることができます。また、新しい開発者がバージョン管理システムからソースファイルを入手し、セットアップ不要のテストを実行できるノースリルセットアップシナリオを目指すべきです。

単純なシナリオではRowTest機能は本当に良いですが、複雑なシナリオを扱う場合は、Test Data Builderパターンを調べて、デフォルトのシナリオを定義してからそれらのバリエーションを定義する必要があります。

私はテストデータを可能な限りテストに近づけたいので、テストで何が起こっているのかを実際に見ることができます。したがって、私はXMLやデータベースを使うべきかどうかという疑問はないと思っています。データを表現するためのフォーマットは異なっていますが、実際にテストからデータを分離したいのですか?

関連する問題