2016-06-02 9 views
1

を続けるには、私が質問する前にaskd結果のTestNG assertjレポートと

を報告するためfluentleniumと程度のレポートを使用してWebをテストするためにassertjとTestNGのを使ってますがassertjの使用を言及するのを忘れてしまったんです。

答えは、ソフトアサートを拡張することであり、アサーションファイヤー機能を備えています。

assertjソフトアサーションにはこれがありますか?またはそれをバイパスする他の魂ですか?

+0

を役に立てば幸い?多くの異なるエンドポイントがあり、どれを試して拡張するのかが分かりません。 – Mobrockers

+0

私は、ここから例のソフトアサーションクラスがあることを知っています。私はあなたが何を言っているのか完全に理解していません –

+0

これらはすべて、assertjが提供するSoftAssertionsの亜種です: - [AutoCloseableBDDSoftAssertions](https://github.com/joel-costigliola/assertj-core/blob/master/src/main /java/org/assertj/core/api/AutoCloseableBDDSoftAssertions.java) - [AutoCloseableSoftAssertions](https://github.com/joel-costigliola/assertj-core/blob/master/src/main/java/org/assertj) /core/api/AutoCloseableSoftAssertions.java) - [BDDSoftAssertions](https://github.com/joel-costigliola/assertj-core/blob/master/src/main/java/org/assertj/core/api/BDDSoftAssertions .java) – Mobrockers

答えて

0

assertJの今後のリリースでは、wasSuccess()というメソッドが追加されています(gitのヒストリに見られるように)が、現在のリリースではまだ利用できません。

このメソッドが追加されると、あなたがこのような何かを行うことができます。

public class AssertjSoftAssert extends SoftAssertions { 

    private void checkFailure() { 

     if(!wasSuccess()) { 

      onFailure(); 
     } 
    } 

    private void onFailure() { 

     //doFailureStuff 
    } 

    @Override 
    public BigDecimalAssert assertThat(BigDecimal actual) { 

     BigDecimalAssert assertion = super.assertThat(actual); 
     checkFailure(); 
     return assertion; 
    } 

    @Override 
    public BooleanAssert assertThat(boolean actual) { 

     BooleanAssert assertion = super.assertThat(actual); 
     checkFailure(); 
     return assertion; 
    } 
} 

あなたは私があなたを示してきたようSoftAssertionsクラスにごとアサーションメソッドをオーバーライドする必要があること、しかし、注意を行いますここの例。また、新しいアサーションがSoftAssertionsクラスに追加された場合でも、それらをオーバーライドする必要があります。これは私が今見つけることができる最高の解決策ですが、assertjが更新されるまで動作しません。

EDIT:機能が出ないようは実際に私がwasSuccess()はすべてのsuccessvul softassert後にのみassertAll()を投げた後、私は明らかにこれをテストすることはできませんtrueを返しますことを確認していないので、これはさえうまくいくことを確認していませんまだ。

ボーナス:次AssertJバージョン(2.5.0)ではThe commit that added wasSuccess()

+1

'wasSuccess'は、実行するアサーションを決めることができるように、最新の(ソフトな)アサーションの結果を返します。次。 [javadoc](http://joel-costigliola.github.io/assertj/core-8/api/org/assertj/core/api/AbstractSoftAssertions.html#wasSuccess--) –

2

あなたはすべてのソフトアサーション・エラー(このcommitを参照)にアクセスする必要があります。

は、それはあなたが使用しているsoftassertをassertj

+0

を参照してください。これは間違いなく彼が望んだことのためのOP。しかし、私は失敗/成功イベントのフックを提供するtestngソリューションは非常にいいと思う。あなたはあなたの枠組みの中でそれを使うかもしれないと思いますか? – Mobrockers

+0

AssertJは、ユーザーが具体的なユースケースでそれを求めた場合、コミュニティ駆動型です。 –

関連する問題