>백엔드 개발 >Golang >테스트용 golang 인터페이스

테스트용 golang 인터페이스

PHPz
PHPz앞으로
2024-02-09 09:57:15385검색

用于测试的 golang 接口

php 편집기 Strawberry는 테스트를 위한 golang 인터페이스를 소개합니다. 소프트웨어 개발 과정에서 테스트는 필수적인 링크이며 이 인터페이스는 편리한 테스트 기능을 제공합니다. 이 인터페이스를 통해 개발자는 코드의 정확성과 안정성을 빠르게 확인하고 개발 효율성을 높일 수 있습니다. 기능 테스트, 성능 테스트, 인터페이스 스트레스 테스트 등 이 도구는 귀하의 요구 사항을 충족할 수 있습니다. 또한 인터페이스는 테스트 결과를 간결하고 직관적으로 표시하므로 개발자는 코드의 실행 상태를 보다 직관적으로 이해할 수 있습니다. 초보자이든 숙련된 개발자이든 이 golang 인터페이스는 개발 작업에 편리함과 이점을 가져올 수 있습니다.

질문 내용

내 코드에서 데이터베이스 모의를 생성하려고 하는데, 모의를 생성하기 위해 내 코드에 인터페이스를 도입합니다.

이것은 내 코드입니다(이것이 올바른 방법인지 모르겠습니다)

으아악

내 인터페이스 구현은 다음과 같습니다.

으아악

이제 메소드에서 findsomethingindatabase 구현을 호출해야 하며 다음과 같은 객체 유형 인터페이스를 받습니다.

으아악

하지만 지금은 구현과 함께 객체를 전달하기 위해 callimplementation`를 호출하는 방법을 모르겠습니다.

인터페이스 구현을 전달하는 메서드를 호출하세요

Solution

인터페이스 설명Type. 당신의 findsomethingindatabase 实现只是一个没有接收器的 func,因此没有实现接口 objectapi 유형 때문에.

func(ctx context.context, name string)(e.response, error) 유형의 값을 콜백으로 func(ctx context.context, name string) (e.response, error) 类型的值作为回调传递到 callimplementation 中,并完全摆脱该接口。或者,保留接口,定义类型,并使该类型成为当前 findsomethingindatabase 实现的接收者。然后,您可以将该类型传递给 callimplementation,因为它现在将实现 objectapi에 전달하고 인터페이스를 완전히 제거할 수 있습니다. 또는 인터페이스를 유지하고 유형을 정의한 다음 해당 유형을 현재 findsomethingindatabase 구현의 수신자로 만듭니다. 이제 objectapi 인터페이스가 구현되므로 해당 유형을

에 전달할 수 있습니다. 후자의 예(확장성을 위해 제가 선호하는 옵션임):

으아악 db 存储为 database이 경우

를 전역 변수로 만드는 대신 멤버로 만드는 것이 좋습니다(지금은 그런 것 같습니다). 🎜

위 내용은 테스트용 golang 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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