私は[SetUp]を使用することが明らかですが、結果を取得するコードが例外をスローする可能性が非常にあり、テストしたいと考えています。Nユニットテストの結果を別のテストで再利用する方法はありますか?
免責事項前部まで、私達は「本当の」単体テストを行っていません。私たちが作っていることは、統合テスト、設計が完了したこと、ユニットテストを前に進めなかったこと、現時点でのリソースを持っていないことなどが挙げられますが、機能のチャンク。
このようなチャンクの1つは、外部データベースからデータを集約し、さまざまな参照を持つ4つの複雑なオブジェクトを作成して内部データベースの複数のテーブルに格納する関数です。我々はすでに、主集約関数をリファクタリングして、(集約関数が挿入を行う前に)ラッパークラスのオブジェクトを返すようにしました。呼び出し元が挿入するようになりました。これにより、データをデータベースから引き出すことなく自動的にデータを検証するための自動テストを作成できます。
NUnitでは、この集約関数をテストしたいという問題があります。それ以上は細かくすることはできません。しかし、4つのオブジェクトのそれぞれを個別に検証し、その関数が例外をスローしないことを検証する必要があります。
この関数は小さなセットでも実行するにはしばらく時間がかかりますので、同じオブジェクトを4回別々に再実行しないようにして、各オブジェクトをテストします。
理想的には、関数がエラーなしで完了したことを検証するテストを実行したいと思います。>フィードは、1つの複合オブジェクト - >複合オブジェクト - >などの検証になります。これはNUnitで可能でしょうか、あるいは私たちが使うことができるもう一つのパラダイムがありますか?
私は最悪の場合、同じデータセットでアグリゲーションを4回実行するとします。
セットアップを使用する際の問題点は何ですか?セットアップに例外がある場合、テストは実行されず、例外はXYZの例外のためにセットアップが失敗したことを通知します。オブジェクトの作成に費用がかかった場合は、他のテスト用にフィールドにキャッシュします。 –
私は既にそれをNユニットですばやく再生していますが、私の理解は[セットアップ]を "テスト"すべきではないということでした。 – SmashCode
テストクラスにクラスレベルの変数を作成し、値を保持します。免責事項として、これによりテストは実行される順序に依存します。通常のテストシナリオでは、単体テストは単独で実行するテスト以外のものに依存しないようにするのが悪い考えです。私の場合は、私は変数をnullableにするので、以前のテストが実際に実行されたかどうかを簡単にテストして、Assertをスローすることができます。 – Kevin