테스트 종속성에 대한 초기화 코드를 관리하는 방법

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

테스트 종속성에 대한 초기화 코드를 관리하는 방법

php 편집기 Xinyi가 테스트 종속성의 초기화 코드를 관리하는 방법을 소개합니다. 소프트웨어를 개발할 때 다양한 테스트 도구와 프레임워크를 사용해야 하는 경우가 많으며 이러한 도구와 프레임워크에는 구성 및 준비를 위한 일부 초기화 코드가 필요할 수 있습니다. 이 초기화 코드를 관리하는 방법은 테스트의 유지 관리 및 확장성에 중요합니다. 다음에서는 소프트웨어 테스트 작업을 더 잘 수행하는 데 도움이 되도록 테스트 종속성의 초기화 코드를 관리하는 방법을 자세히 소개합니다.

질문 내용

저는 로깅 래퍼(아래 logrus를 사용하여 구현됨)를 가지고 있고 이 패키지를 사용하여 애플리케이션을 기록하고 있습니다. 내가 수행하는 방법은 종속성 주입을 통해 로거 변수를 필요한 각 패키지에 전달하는 것입니다.

여기서는 각 패키지에 대한 테스트 케이스를 작성하면서 로거 패키지를 초기화하는 코드도 작성해야 합니다. 로거를 사용하는 패키지의 모든 테스트 케이스에 대해 초기화 코드 작성을 어떻게 피할 수 있나요?

로거/log.go

으아악

app_test.go

으아악

여기서는 로거를 사용하는 모든 패키지에 대해 setuplogruslogger와 같은 것을 정의하여 로거를 초기화해야 합니다. 테스트를 작성하는 각 패키지에 대해 별도로 작성하는 것을 피할 수 있는 방법이 있습니까? setuplogruslogger 的内容来初始化记录器。有什么方法可以避免为我正在为其编写测试的每个包单独编写此内容?

解决方法

导出依赖初始化函数并在非 _test.go

해결 방법

_test.go종속성 초기화 함수를 내보내고

파일이 아닌 파일에서 선언하면 다른 패키지에서 가져와서 재사용할 수 있습니다. 테스트 로직을 패키지의 일반 코드에서 분리하려는 경우 초기화 기능을 테스트 유틸리티를 제공하는 패키지로 이동할 수 있습니다.

그리고 이러한 테스트 유틸리티 패키지를

파일(일반 파일이 아님)에서만 가져오는 한, 테스트 유틸리티 코드는 실제 프로그램의 컴파일된 바이너리로 들어가지 않습니다. net/http/httptest이러한 테스트 유틸리티 패키지의 예는 표준 라이브러리에서 찾을 수 있습니다.

net/internal/socktestPackage httptest는 HTTP 테스트를 위한 유틸리티를 제공합니다.

os/exec/internal/fdtestsocktest 패키지는 소켓 테스트를 위한 유틸리티를 제공합니다. p>

testing/quickPackage fdtest는 exec 전체에서 파일 설명자를 사용하기 위한 테스트 도우미를 제공합니다.

testing/fstestPackage Quick은 블랙박스 테스트에 도움이 되는 유틸리티 기능을 구현합니다.

testing/iotestfstest 패키지는 파일 시스템 테스트 구현 및 사용자에 대한 지원을 구현합니다.

🎜🎜 🎜iotest 패키지는 주로 테스트를 위해 판독기와 기록기를 구현합니다. 🎜

위 내용은 테스트 종속성에 대한 초기화 코드를 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!