>  기사  >  백엔드 개발  >  테이블 기반 테스트에서 모의 ​​호출 기대치를 재정의하는 방법

테이블 기반 테스트에서 모의 ​​호출 기대치를 재정의하는 방법

WBOY
WBOY앞으로
2024-02-10 21:42:09844검색

테이블 기반 테스트에서 모의 ​​호출 기대치를 재정의하는 방법

오늘 PHP 편집자인 Xiaoxin은 테이블 기반 테스트에서 시뮬레이션 호출 기대치를 재정의하는 방법을 소개합니다. 테이블 기반 테스트는 데이터 기반 방식으로 테스트하고 코드의 유지 관리성과 확장성을 향상시킬 수 있는 효과적인 테스트 기술입니다. 테스트에서는 테스트 중인 코드가 예상대로 작동하는지 확인하기 위해 호출 예상을 모의해야 하는 경우가 많습니다. 이 기사에서는 테이블 중심 테스트를 사용하여 원하는 모의 호출 범위를 달성하고 개발자가 단위 테스트를 더 잘 수행하는 데 도움이 되는 방법을 자세히 소개합니다.

질문 내용

테이블 기반 테스트를 수행하는 동안 mockery에서 생성된 일부 모의 개체를 사용하고 각 테스트 사례에 대해 데이터 세트에 제공된 데이터에 따라 일부 메서드 호출 기대치를 설정합니다. 내가 직면하고 있는 문제는 모의 호출이 항상 첫 번째 테스트 사례에서 예상한 결과 세트를 반환하고 실행된 테스트 사례에 대해 정의된 결과 세트를 반환하지 않는다는 것입니다.

으아악

이 테스트를 실행하면 결과가 1 而不是预期的 2 ,我可以看到问题是模拟方法返回 1 (为第一个测试用例设置的值)而不是 2(현재 테스트 사례에 설정된 값)이기 때문에 두 번째 사례는 실패합니다.

이 문제를 해결하는 방법을 아시나요?

해결 방법

이것은 가장 우아한 솔루션이 아닐 수 있으며 이를 수행할 수 있는 다른 방법이 있는지 궁금했지만 지금은 이 솔루션을 찾았습니다. 이는 테이블 기반 테스트에 의해 실행되는 각 하위 테스트에 대해 새로운 모의를 생성하는 것으로 구성되므로 각 하위 테스트에서 이전 하위 테스트의 기대치를 설정하지 않는 완전히 새로운 모의 인스턴스를 사용합니다. 내가 testify.suite 来组织和处理我的测试,这样做就像在每个子测试中手动调用 s.setuptest()를 사용한다는 점을 고려하면 방법은 간단합니다:

으아악

위 내용은 테이블 기반 테스트에서 모의 ​​호출 기대치를 재정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제