php 편집기 Xinyi가 테스트 종속성의 초기화 코드를 관리하는 방법을 소개합니다. 소프트웨어를 개발할 때 다양한 테스트 도구와 프레임워크를 사용해야 하는 경우가 많으며 이러한 도구와 프레임워크에는 구성 및 준비를 위한 일부 초기화 코드가 필요할 수 있습니다. 이 초기화 코드를 관리하는 방법은 테스트의 유지 관리 및 확장성에 중요합니다. 다음에서는 소프트웨어 테스트 작업을 더 잘 수행하는 데 도움이 되도록 테스트 종속성의 초기화 코드를 관리하는 방법을 자세히 소개합니다.
저는 로깅 래퍼(아래 logrus를 사용하여 구현됨)를 가지고 있고 이 패키지를 사용하여 애플리케이션을 기록하고 있습니다. 내가 수행하는 방법은 종속성 주입을 통해 로거 변수를 필요한 각 패키지에 전달하는 것입니다.
여기서는 각 패키지에 대한 테스트 케이스를 작성하면서 로거 패키지를 초기화하는 코드도 작성해야 합니다. 로거를 사용하는 패키지의 모든 테스트 케이스에 대해 초기화 코드 작성을 어떻게 피할 수 있나요?
로거/log.go
으아악app_test.go
으아악여기서는 로거를 사용하는 모든 패키지에 대해 setuplogruslogger
와 같은 것을 정의하여 로거를 초기화해야 합니다. 테스트를 작성하는 각 패키지에 대해 별도로 작성하는 것을 피할 수 있는 방법이 있습니까? setuplogruslogger
的内容来初始化记录器。有什么方法可以避免为我正在为其编写测试的每个包单独编写此内容?
导出依赖初始化函数并在非 _test.go
_test.go
종속성 초기화 함수를 내보내고
그리고 이러한 테스트 유틸리티 패키지를
파일(일반 파일이 아님)에서만 가져오는 한, 테스트 유틸리티 코드는 실제 프로그램의 컴파일된 바이너리로 들어가지 않습니다.
net/http/httptest
이러한 테스트 유틸리티 패키지의 예는 표준 라이브러리에서 찾을 수 있습니다.
net/internal/socktest
Package httptest는 HTTP 테스트를 위한 유틸리티를 제공합니다.
os/exec/internal/fdtest
socktest 패키지는 소켓 테스트를 위한 유틸리티를 제공합니다.
p>
testing/quick
Package fdtest는 exec 전체에서 파일 설명자를 사용하기 위한 테스트 도우미를 제공합니다.
testing/fstest
Package Quick은 블랙박스 테스트에 도움이 되는 유틸리티 기능을 구현합니다.
testing/iotest
fstest 패키지는 파일 시스템 테스트 구현 및 사용자에 대한 지원을 구현합니다.
위 내용은 테스트 종속성에 대한 초기화 코드를 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!