2017-11-20 21 views
1

assertJ에 곱셈 조건을 설정하려고하는데 examplesGit을 찾을 수 없습니다.AssertJ 어설 션에서 설정된 조건을 곱 하시겠습니까?

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

그러나 같은 것을 갖고 싶어 :

나는 현재 쓰기

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

내가 차 데이터 (ID가 아닌 전화)가 필요하기 때문에 작동하지 않습니다이 체인 사용하는 경우로서 . one-assertJ 명령에 모든 것을 섞을 가능성이 있습니까? 이것 (알고리즘 현명한)에 ​​대한 가능성은있을 수 있지만 어쩌면 & & 진술에 어떤 다른 생각처럼 보이지 않는다?

감사

답변

3

당신은 한 번에 여러 주장을 결합하여 다음을 평가하는 AssertJ와 soft assertions을 사용할 수 있습니다. 소프트 어썰트 (soft assertions)는 다수의 어서션을 결합한 다음 하나의 단일 연산으로 이들을 평가할 수 있습니다. 이것은 트랜잭션 어설 션과 약간 비슷합니다. 어설 션 번들을 설정 한 다음 커밋합니다.

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를 작성할 수

는 도움이되기를 바랍니다.