IT story

Moq에서 Verifiable ()의 목적은 무엇입니까?

hot-time 2020. 7. 26. 12:01
반응형

Moq에서 Verifiable ()의 목적은 무엇입니까?


의 목적은 Verifiable()무엇입니까?

내가 a를 확인하고 Mock이것을 남겨두면 여전히을 확인합니다 SetUp.

편집 : 나는 VerifyAll()모든 것을 확인하는 이유를 사용 하고 있었습니다 . Verify().Verifiable() SetUps 로만 변경 한 후 확인되었습니다.


부록 : 다른 답변에서 알 수 있듯이, 목적 .Verifiable은를 통해 Setup"지연된 Verify(...)통화" 에 참여하도록하는 것 mock.Verify()입니다.

영업 이익의 설명은 그것이 작동하지 않는 이유를 파악하고이 목표와 유일한 문제라고 취소,하지만 @Liam는 prodded으로, 대답은 정말 너무 이것에 닿아 야한다 : - 주요 사용 사례를 내가 할 수있는 최대한으로 참조하십시오 :

  • mock.Setup()사이의 건조 유지mock.Verify
  • 실제 Verify전화 자체 에서 확인 구성을 분리 할 수 있습니다 (예 : 다른 도우미 방법으로 설정할 수 있음)

... 그리고 내 대답으로 돌아가서, "위의 전문가들은 그러한 목표를 달성하는 것이 그러한 구성에 너무 많이 의존하는 테스트의 가독성 및 유지 관리성에 미치는 영향으로 인해 일반적으로 중요하기 때문에주의해야합니다."

ORIGINAL : 가능한 한 대신 수행해야하는 것으로 AAA의 레이아웃을 따라서 하나가되어야 명시하고 mock.Verify( expression )작업이 오히려보다, 수행 한 후 전화를 mock.Setup( ... ).Verifiable()와 결합 mock.Verify()또는mock.VerifyAll() 가능하면 (제공 : @kzu ).


Verify()테스트가 끝날 메소드가 호출 될 때 검증 가능한 것으로 표시된 기대치 중 하나가 호출되지 않은 경우 예외는 thrown입니다.

VerifyAll() 검증 가능한 기대치를 확인하지 않습니다.

참고 URL : https://stackoverflow.com/questions/980554/what-is-the-purpose-of-verifiable-in-moq

반응형