2017-11-20 1 views
1

私はassertJに乗算条件を設定しようとしていて、それをexamplesGitで見つけることができませんでした。AssertJアサーションで設定された条件を掛け合わせますか?

私は現在、書き込み:

assertThat(A.getPhone()) 
      .isEqualTo(B.getPhone()); 
    assertThat(A.getServiceBundle().getId()) 
      .isEqualTo(B.getServiceBundle().getId()); 

しかし、何かがしたい:私は、差分データ(IDやない電話)を必要とするので、これは動作しません連鎖を使用する場合のよう

  assertThat(A.getPhone()) 
      .isEqualTo(B.getPhone()) 
      .And 
      (A.getServiceBundle().getId()) 
      .isEqualTo(B.getServiceBundle().getId()); 

を。 one-assertJコマンドにすべてを混ぜる可能性はありますか?これは(アルゴリズムの賢明な)任意の可能性があるかもしれないように見えるのではないかもしれません& &の文には別の考えですか?

おかげ

答えて

3

あなたは一度に複数のアサーションを組み合わせて、これらを評価するためにAssertJでsoft assertionsを使用することができます。ソフトアサーションを使用すると、複数のアサーションを組み合わせて、1回の操作でこれらのアサーションを評価できます。それはトランザクションアサーションのようなビットです。アサーションバンドルをセットアップしてからコミットします。

SoftAssertions phoneBundle = new SoftAssertions(); 
phoneBundle.assertThat("a").as("Phone 1").isEqualTo("a"); 
phoneBundle.assertThat("b").as("Service bundle").endsWith("c"); 
phoneBundle.assertAll(); 

それは少し冗長ですが、それは「& &」は、あなたのアサーションを-ingに代わるものです。エラー報告は実際は非常にきめ細かく、失敗した部分的なアサーションを指しています。したがって、上記の例では、印刷されます:

org.assertj.core.api.SoftAssertionError: 
The following assertion failed: 
1) [Service bundle] 
Expecting: 
<"b"> 
to end with: 
<"c"> 

を実際にこれが原因詳細なエラー・メッセージに「& &」オプションよりも優れています。

0

gil.fernandesの提案は私の票を持って、あなたはまた、A.

conditionを書くことができ、それがお役に立てば幸いです。

関連する問題