ジュニットテストを前提条件として使用できますか?別のジュニットテスト

私はアサーションを使用するjUnitテスト(T1と呼ぶことができます)を持っています。そのアサーションが何らかの価値を持つためには、そのアサーションが正しいことを検証する必要があります。

バリデーターのために私は別のテストスイートにテスト(T2)を持っています。どうにかしてT2をT1の前提条件にすることはできますか?

それが不可能な場合は、T1とT2が同じスイート内にあれば可能でしょうか?

1
なぜあなたはこれをやろうとしていますか?
追加された 著者 c_maker,
それは質問の中で正しいと言います。明確にするには:私は、T1のアサーションを検証するためにそのフィルタを使用します。これはassertEquals(filter(フィルタなし)、実際)のようなものです。したがって、T2が合格しなかった場合、T1が合格したかどうかは関係なく、それは有効なテストではありません。
追加された 著者 Rythmic,

3 答え

私はこのスレッドでそれを見つけました:

JUnitテストの依存関係を指定するにはどうすればよいですか?

JUnitには、JUnitテスト間の依存関係を記述できる拡張機能があるようです。

https://github.com/junit-team/junit.contrib/ツリー/マスター/仮定する

2
追加された
私はそれを購入していない...私はあなたのテストで余分な混乱、コンテキストとメンテナンスを感じる。
追加された 著者 c_maker,
私はその質問が「なぜ」ここの「方法」ではないと思う。ユニットテストとは何ですか?単体テストは1つのメソッドをテストすることになっていました。私の挿入ロジックが動作しなくても、私の論理を完全に削除できます。
追加された 著者 c_maker,
私はそれらを別の名前と呼びます。彼らはユニットテストフレームワークを使用するかもしれませんが、私のボキャブラリーでは単体テストではありません。しかし、この点について論じる理由はないでしょう。単体テストフレームワークで書かれた統合テストや受入れテストのために何かしたいと思うかもしれないことに私は同意しますが、本当の単体テストではこのようなことは必要ありません。
追加された 著者 c_maker,
メンテナンスを避けるための手段がないとは思いませんか?私は、表現する依存関係があれば、それは維持すべきでしょうか?...そして、私たちは「注釈」についてのみ話しているので、メンテナンスのオーバーヘッドは見られません。
追加された 著者 Anders,
私は、「単体テストは単一のメソッドだけをテストすることになっている」という事実について、あなたに強く反対します。単体テストは(私の意見では)作業単位をテストすることになっています。これらの単位は、サイズや複雑さがさまざまです(単一または複数のメソッドを含む)。削除ロジックに挿入ロジックをリンクする実装または動作の詳細がある場合は、テスト間の依存関係管理が理にかなっています。
追加された 著者 Anders,

前提条件が成立していないときに単体テストをスキップすることを考えます。コード化されたロジックによる単体テストのスキップは危険です。何か問題があるかどうか分かりませんし、あなたのコードでもテストカバレッジが得られないからです。根本的な部分が壊れている場合は、エラーを隠すよりも多くのテストを失敗させる方がいいです。単体テストと小規模のソフトウェアをテストする単体テストについて話しています。

プロダクションコードの一部ではないエタロンバリデーターを使用できますが、テストが確実に実行されることを妨げない単純なテストユーティリティでなければなりません。テストコードが前提条件のために重要なコード部分をスキップしたため、バリデーションに接続されていない、別のエラーが出現する可能性があります。

実際に統合テストや機能テストを行う場合は、JUnit以外のテストフレームワークを使用することも検討してください。統合テストでは、テストの残りの部分をスキップして、分かりにくい開始から数分後に統合環境を悪用しないようにすることは時々ありますが、単体テストではコードのすべての部分を制御する必要があります。

もちろん、@ BeforeClass/setUpフィクスチャでアサーションを作成したり、テストに「if」フォークを入れたりするなど、JUnitの前提条件をハックすることもできますが、それらはあなたを欺くでしょう。

1
追加された
いいえ、私は単体テストをスキップすることを考えていないと思っています。与えられたテストの前提条件をアサートすることで同じことを達成することができましたが、同じテストを2回実行して回避するのがいいでしょう。
追加された 著者 Rythmic,

T2に合格しているという説明でT1にコメントすることができます。また、T2も失敗した場合は、最初に修正してからT1に取り組む必要があります

0
追加された
ニースとシンプル:)しかし、
追加された 著者 Rythmic,