私はアサーションを使用するjUnitテスト(T1と呼ぶことができます)があります。そのアサーションが何らかの価値を持つためには、そのアサーションが正しいことを検証する必要があります。私は前提条件としてJunit Testを使用できますか他のJunitテストの場合
バリデーターの場合、別のテストスイートにテスト(T2)があります。どうにかしてT2をT1の前提条件にすることはできますか?
これが可能でない場合は、T1とT2が同じスイート内にある場合は可能でしょうか?
私はアサーションを使用するjUnitテスト(T1と呼ぶことができます)があります。そのアサーションが何らかの価値を持つためには、そのアサーションが正しいことを検証する必要があります。私は前提条件としてJunit Testを使用できますか他のJunitテストの場合
バリデーターの場合、別のテストスイートにテスト(T2)があります。どうにかしてT2をT1の前提条件にすることはできますか?
これが可能でない場合は、T1とT2が同じスイート内にある場合は可能でしょうか?
に取り組んされる前に、それが最初に固定されるべきであると私は、このスレッドで発見したことを説明してT1をコメントすることができます
How can I specify JUnit test dependencies?
JUnitテスト間の依存関係を記述することができますJUnitのへの拡張がありますようだ:
https://github.com/junit-team/junit.contrib/tree/master/assumes
私はそれを購入していない...私はあなたのテストで余分な混乱、コンテキストとメンテナンスを感じる。 –
メンテナンスを避けるための方法はありませんか?私は、表現する依存関係があれば、それは維持すべきでしょうか?...そして、私たちは「注釈」についてのみ話しているので、メンテナンスのオーバーヘッドは見られません。 – Anders
私は質問が 'なぜ'ここに '方法'ではないと思う。ユニットテストとは何ですか?単体テストは単一のメソッドをテストすることになっていました。私の挿入ロジックが動作しなくても、私の論理を完全に削除できます。 –
前提条件が成立していないときに単位テストをスキップすることを考えます。コード化されたロジックによる単体テストのスキップは危険です。何か問題があるかどうか分かりませんし、あなたのコードでもテストカバレッジが得られないからです。根本的な部分が壊れている場合は、エラーを隠すよりも多くのテストを失敗させる方がいいです。単体テストと小規模のソフトウェアをテストする単体テストについて話しています。
実動コードの一部ではないエタロンのバリデータを使用できますが、テストが確実に実行されないような簡単なテストユーティリティでなければなりません。テストコードが前提条件のために重要なコード部分をスキップしたため、バリデーションに接続されていない、別のエラーが出現する可能性があります。
実際に統合テストや機能テストを行う場合は、JUnit以外のテストフレームワークを使用することも検討してください。統合テストでは、テストの残りの部分をスキップして、分かりにくい開始から数分後に統合環境を悪用しないようにすることは時々ありますが、単体テストではコードのすべての部分を制御する必要があります。
もちろん、@ BeforeClass/setUpフィクスチャでアサーションを作成したり、テストに「if」フォークを入れたりするなど、JUnitの前提条件をハックすることもできますが、それらはあなたを欺くでしょう。
いいえ私は単体テストをスキップすることについては考えていませんが、それは誤りの場所のものです。与えられたテストの前提条件をアサートすることで同じことを達成することができましたが、同じテストを2回実行して回避するのがいいでしょう。 – Rythmic
なぜこれをやろうとしていますか? –
それは質問の中で正しいと言います。明確にするには:私は、T1のアサーションを検証するためにそのフィルタを使用します。これはassertEquals(filter(フィルタなし)、実際)のようなものです。したがって、T2が合格しなかった場合、T1が合格したかどうかは関係なく、それは有効なテストではありません。 – Rythmic