Go 테스트 사례에서 구조체의 모의 메서드 호출
Go에서는 구조체의 모의 메서드 호출에 대한 기본 지원이 없습니다. 그러나 유사한 기능을 달성하기 위해 여러 기술을 사용할 수 있습니다.
한 가지 접근 방식은 구조체의 관련 메서드를 나타내는 인터페이스를 정의하고 해당 인터페이스의 모의 구현을 만드는 것입니다. 그런 다음 이 모의 구현을 실제 구조체 대신 테스트 사례에 주입할 수 있습니다.
다음 코드 샘플을 고려하세요.
type A struct {} func (a *A) perform(url string){ // ... }
이를 사용하는 호출() 함수를 테스트하려면 수행합니다. () 메소드를 사용하여 A 구조체의 모의 구현을 생성할 수 있습니다:
type AMock struct { PerformFunc func(url string) } func (m *AMock) perform(url string) { if m.PerformFunc != nil { m.PerformFunc(url) } }
테스트 사례에서 모의 구현은 호출()에 주입될 수 있습니다. 함수:
func TestInvoke(t *testing.T) { mock := &AMock{} mock.PerformFunc = func(url string) { // Test logic for mock behavior } invoke(mock, "example.com") }
모의에 PerformFunc 필드를 설정하면 모의 메서드의 동작을 제어하고 테스트에서 어설션할 수 있습니다.
모의에 대한 또 다른 접근 방식은 종속성 주입을 사용하는 것입니다. Mocking을 지원하는 프레임워크입니다. 이를 통해 보다 유연하고 다양한 모의 기능이 가능하지만 추가 구성 및 설정이 필요합니다.
궁극적으로 가장 적합한 모의 방법은 개발 중인 테스트 사례 및 애플리케이션의 특정 요구 사항과 제약 조건에 따라 다릅니다.
위 내용은 Go 테스트 케이스에서 구조체 메서드 호출을 어떻게 모의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!