Go 테스트 케이스의 모의 구조체 메서드
Go에서는 소스 코드에 인터페이스를 도입하지 않고도 구조체의 모의 메서드 호출을 달성할 수 있습니다. . 방법은 다음과 같습니다.
샘플 구조체 및 메서드 모의
다음 구조체 및 메서드를 고려하세요.
type A struct {} func (a *A) perfom(string){ ... ... .. }
테스트 사례에서 모의
테스트를 위해 수행 방법을 모의하려면 사례:
type Performer interface { perform(string) }
type AMock struct {} func (a *AMock) perform(string) { // Mocked behavior } type A struct {} func (a *A) perform(string) { // Real implementation }
func invoke(url string, p Performer) { out := p.perfom(url) ... ... }
func TestInvokeWithMock(t *testing.T) { var amok = &AMock{} invoke("url", amok) // Verify mock behavior (e.g., assert it was called with the correct argument) }
func TestInvokeWithReal(t *testing.T) { var a = &A{} invoke("url", a) // No need for verification since it's the real implementation }
기타 옵션
[testify/mock](https://godoc.org/github.com/stretchr/testify/mock)과 같은 라이브러리는 더욱 강력한 모의 기능을 제공하여 모의 동작을 제어하고 메소드 호출을 확인하세요.
위 내용은 인터페이스 없이 Go 테스트 케이스에서 구조체 메서드를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!