JUnitおよびTestNGの汎用API

JUnitにテストが書かれていて、すべてが正常に動作する状況を想像してください(少なくとも、テストは書かれています)。
しかし、TestNGがこれらのテストにより便利であるという素晴らしいアイデアがあります。 どちらのフレームワークがより優れているか、よりクールであるか、より便利であるかは、ホリバーには触れません。 しかし、実際には、異なるAPIがあります。

もちろん、 assertArrayEqualsassertEqualsassertEqualsは難しくassertEqualsません。
しかし、落下テストのメッセージの位置を変更することはすでに難しく、ここではペンを編集する必要があります。
この問題がどれほど緊急であるかはわかりませんが、何度も遭遇しました。

そこで、特別な頭痛なしにフレームワークを変更できるシンプルなライブラリを作成するという、クレイジーなアイデアがありました。

どのように見えるかのおおよそのバージョンをスケッチし、議論のために提供しました。
APIは次のとおりです。
usingTestNG.assertEquals( "Strings are not equal", "expected", "actual" );
usingJUnit.assertEquals( "Strings are not equal", "expected", "actual" );

または、デフォルトを使用できます。
usingDefault.assertEquals( "Strings are not equal", "expected", "actual" );

この場合、libはTestNGを使用しようとします。 クラスにない場合は、JUnitが使用されます。

呼び出し自体のインターフェースにはJUnitが使用されますが、これは重要なポイントです。 彼は私にもっと馴染みがあり、これは主観的です。 おそらく、両方のオプションを追加するのが理にかなっています。

一般的に、誰かがそのような問題に遭遇した場合、これの必要性について議論しましょう。 たぶん、これは別の自転車です。

更新1。
フィードバックをありがとう! 近い将来の小さなロードマップを作成しました。
-テストのslf4jのような初期化を追加。
-静的インポート用のより良いAPIをリファクタリングします。
-APIのようなフェストアサートを追加します。
-APIのようなTestNGを追加します。
-JUnitおよびTestNGアノテーションのプロキシを追加します。 テストによって参照されるフレームワークが欠落している場合、重要度に応じて、テストの起動中に警告がポップアップまたはクラッシュするはずです。
-JUnitおよびTestNGリスナーのプロキシを追加します。 アサートと同様に、リスナーは交換可能であるため、リスナーが存在する場合は機能するはずです。

誰か他の考えのための時間があるなら、私は非常に幸せで感謝するでしょう。

Source: https://habr.com/ru/post/J195908/


All Articles