Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 전통적인 Hamcrest 매칭을 통해 mockitohamcrest를 사용하는 장점은 무엇입니까?


전통적인 Hamcrest 매칭을 통해 mockitohamcrest를 사용하는 장점은 무엇입니까?


전통적인 Hamcrest 시합을 통해 Mockitohamcrest를 사용하면 특히 단위 테스트에서 조롱하기 위해 Mockito와 협력 할 때 몇 가지 장점이 있습니다. 주요 이점은 다음과 같습니다.

1. Mockito와의 통합 : Mockitohamcrest를 사용하면 Hamcrest 매칭을 Mockito의 조롱 프레임 워크와 완벽하게 통합 할 수 있습니다. 이 통합은 전통적인 Hamcrest 매칭업자만으로 직접 지원되지 않는 복잡한 인수 일치로 스텁을 설정하거나 방법 호출을 확인하는 데 중요합니다. 예를 들어, 'mockitohamcrest.arg that'을 사용하여 hamcrest 매칭자를 Mockito 매칭으로 변환하여 Mockito 컨텍스트에서 Hamcrest의 풍부한 매치 업체 세트를 사용할 수 있습니다 [1] [10] [12].

2. 버전의 비 호환성 : Mockito는 버전 2.1.0의 Hamcrest에서 분리되어 과거에 사용자에게 문제를 일으킨 버전 비 호환성을 피했습니다. Mockitohamcrest는 특정 버전의 Hamcrest와 밀접하게 결합되지 않고 Hamcrest 마팅러를 사용하여 잠재적 충돌을 줄이는 방법을 제공합니다 [1] [10].

3. 인수 일치의 유연성 : Mockitohamcrest를 사용하면 Hamcrest의 유연하고 표현적인 매칭을 사용하여 복잡한 인수 일치 시나리오를 정의 할 수 있습니다. 이것은 특정 기판이 포함 된 문자열이나 특정 범위 내에서 숫자와 같은 특정 조건과 일치하는 인수가있는 메소드가 호출되었는지 확인해야 할 때 특히 유용합니다 [4] [12].

4. 개선 된 가독성 및 자체 문서화 코드 : Mockitohamcrest를 통해 Hamcrest 매칭자를 사용하면 테스트가 자체 문서화 상태로 유지되고 읽기 쉬운 상태로 유지 될 수 있습니다. 경기자는 테스트의 의도를 명확하게 표현하여 개발자가 추가 의견이 필요하지 않고 테스트중인 내용을 더 쉽게 이해할 수 있도록합니다 [3] [9].

5. 더 나은 오류 메시지 : 어설 션이 실패하면 Hamcrest는 상세하고 의미있는 오류 메시지를 제공하여 디버깅에 크게 도움이 될 수 있습니다. 이는 Mockitohamcrest를 사용할 때 특히 유익합니다. 모의 검증이 실패한 이유를 식별하는 데 도움이되므로 문제를 쉽게 진단 할 수 있습니다 [3] [9].

6. 사용자 정의 및 확장 가능성 : Hamcrest의 매치 업체 API를 사용하면 특정 테스트 요구에 맞는 사용자 정의 매칭을 만들 수 있습니다. Mockitohamcrest와 결합되면이 확장 성을 사용하면 응용 프로그램의 논리에 정확하게 일치하는 더 많은 목표적이고 표현적인 테스트를 작성할 수 있습니다 [6] [9].

요약하면 Mockitohamcrest는 Hamcrest의 유연하고 표현력이 뛰어난 Mockito의 조롱 기능을 강력하게 조합하여 테스트 가독성, 유연성 및 유지 관리를 향상시킵니다.

인용 :
[1] https://site.mockito.org/javadoc/current/org/mockito/hamcrest/mockitohamcrest.html
[2] https://stackoverflow.com/questions/20441594/mockito-and-hamcrest-how-to-verify-invocation-of-collection-argument
[3] https://automatenow.io/complete-guide-to-hamcrest-matchers/
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.hamcrest.mockitohamcrest.mockitohamcrest
[5] https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.9/org/mockito/argumentmatcher.html
[6] https://www.javacodegeeks.com/2015/11/custom-hamcrest-matchers.html
[7] https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.mockito.hamcrest.mockitohamcrest
[8] https://site.mockito.org/javadoc/current/index.html?org%2fmockito%2fargumentmatcher.html
[9] https://www.vogella.com/tutorials/hamcrest/article.html
[10] https://weblab.tudelft.nl/docs/mockito/3.10/org/mockito/hamcrest/mockitohamcrest.html
[11] https://truth.dev/comparison.html
[12] https://stackoverflow.com/questions/8348046/mockitos-matcher-vs-hamcrest-matcher