> 백엔드 개발 > Golang > 시간 제한이 있는 단위 테스트에 대해 DeadlineExceededError 만들기: true

시간 제한이 있는 단위 테스트에 대해 DeadlineExceededError 만들기: true

WBOY
풀어 주다: 2024-02-09 13:00:18
앞으로
717명이 탐색했습니다.

시간 제한이 있는 단위 테스트에 대해 DeadlineExceededError 만들기: true

PHP 편집자인 Xiaoxin이 단위 테스트에 대한 팁을 소개합니다. 시간 제한이 있는 단위 테스트에 대해 DeadlineExceededError: true를 생성하세요. 단위 테스트를 수행할 때 테스트 실행 시간 초과가 발생할 수 있습니다. 이 경우 DeadlineExceededError를 true로 설정하여 이 문제를 해결할 수 있습니다. 이 기술은 테스트 실행 시간을 더 잘 제어 및 관리하고 테스트의 정확성과 신뢰성을 보장하는 데 도움이 될 수 있습니다. 다음에는 이 기법을 활용하여 단위 테스트의 효율성과 신뢰성을 향상시키는 방법을 자세히 소개하겠습니다.

질문 내용

저는 프로젝트에서 http 클라이언트를 모의하고 클라이언트가 반환해야 하는 응답을 설정하는 단위 테스트를 만들려고 합니다. 이 동작이 필요한 이유는 http 클라이언트가 시간 초과로 인해 실패할 경우 코드가 적절하게 동작해야 하기 때문입니다. 따라서 DeadlineExceededError를 반환하고 단위 테스트를 수행하기 위해 http 클라이언트를 모의해야 합니다.

지금까지 시도한 것은 client.do가 다음을 반환하는 방식으로 클라이언트 수행 기능을 시뮬레이션하는 것입니다.

으아악

작동하지만 완전하지는 않습니다. 즉, 이 시뮬레이션된 동작으로 코드를 실행할 때 반환되는 오류 유형은 다음과 같습니다.

으아악

이 역시 정확하지만 완전히는 아닙니다. 왜? 코드를 실행했는데 실제 시간 초과가 발생하면 더 완전한 결과를 얻을 수 있기 때문입니다.

으아악

제가 가장 관심을 갖는 것은 timeout: true입니다. 모의 객체에게 반환하라고 지시하면 이를 주장할 수 있는데, 반환된 오류가 deadlineexceedederror 유형이라고 주장하는 것보다 더 완전하다고 생각합니다.

Solution

테스트를 너무 복잡하게 만들지 않으려면 이 접근 방식을 채택하는 것이 좋습니다. 먼저 오류를 정의하는 것부터 시작하세요.

으아악

이런 식으로 timeouterror就同时实现了error()timeout인터페이스가 됩니다.
그런 다음 http 클라이언트에 대한 모의를 정의해야 합니다.

으아악

위에서 정의한 오류와 nil를 http.response로 반환합니다. 마지막으로 샘플 단위 테스트를 작성하는 방법을 살펴보겠습니다.

으아악

이 테스트를 디버그하고 err 변수에 대한 디버거를 일시 중지하면 원하는 결과를 볼 수 있습니다.
이렇게 하면 추가적인 복잡성 없이 원하는 기능을 얻을 수 있습니다. 그것이 당신에게 효과가 있는지 알려주세요!

위 내용은 시간 제한이 있는 단위 테스트에 대해 DeadlineExceededError 만들기: true의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿