가짜 클라이언트를 사용하여 간단한 Client-Go 테스트 작성
문제:
어떻게 하면 효과적으로 가짜 클라이언트를 사용하여 Kubernetes client-go 패키지에 의존하는 테스트 코드가 있습니까?
함수 개요:
제공된 함수 GetNamespaceCreationTime은 네임스페이스 생성 시간을 검색합니다. 일반적으로 실제 Kubernetes API에 액세스하여 정보를 가져오지만, 테스트 목적으로 실제 API에서 기능을 분리하고 대신 가짜 클라이언트를 사용해야 합니다.
테스트 구조:
테스트에서는 가짜 클라이언트를 초기화하고 이를 테스트 중인 함수에 전달한 다음 가짜 클라이언트와의 상호 작용을 기반으로 함수의 동작을 확인해야 합니다.
가짜 클라이언트 세트의 구성 사용:
테스트 기능에서는 fake.NewSimpleClientset()을 사용하여 가짜 클라이언트 세트를 생성해야 합니다. 이 가짜 클라이언트 세트는 가짜 개체와 상호 작용하기 위한 다양한 방법을 제공합니다. 가짜 클라이언트가 이미 모든 내부 구성을 처리하므로 가짜 클라이언트 세트로 구성 개체를 구성할 필요가 없습니다.
클러스터 내 구성 격리:
테스트에서 가짜 클라이언트를 일관되게 사용하려면 , 클러스터 내 구성을 가져오고 Kubernetes 클라이언트를 생성하는 단계를 분리하는 것이 좋습니다. 가짜 클라이언트 세트를 반환하기 위해 테스트 중에 재정의할 수 있는 클라이언트 세트를 검색하는 별도의 함수를 도입합니다.
샘플 테스트 함수:
그런 다음 테스트 함수는 가짜 클라이언트 세트를 인스턴스화할 수 있습니다. 테스트 중인 함수를 호출하고 가짜 클라이언트 세트를 전달하고 예상되는 동작을 확인합니다.
<code class="go">func TestGetNamespaceCreationTime(t *testing.T) { fakeClient := fake.NewSimpleClientset() got := GetNamespaceCreationTime(fakeClient, "default") want := int64(1257894000) // Assertions on how the fake client was interacted with go here }</code>
모의 및 주입에 대한 추가 팁:
더 고급 모의 및 종속성 주입 시나리오를 보려면, Testify 또는 GoMock과 같은 종속성 주입 프레임워크를 사용하는 것을 고려해 보세요. 이러한 프레임워크는 격리되고 검증 가능한 단위 테스트를 만드는 데 도움이 됩니다.
위 내용은 가짜 클라이언트로 Client-Go를 효과적으로 테스트하는 방법: 격리되고 검증 가능한 단위 테스트 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!