"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo probar el código Client-Go con un cliente falso?

¿Cómo probar el código Client-Go con un cliente falso?

Publicado el 2024-11-08
Navegar:817

How to Test Client-Go Code with a Fake Client?

Prueba del código Client-Go con un cliente falso

Declaración del problema

Al implementar la función GetNamespaceCreationTime, encontró un desafío al escribir pruebas unitarias integrales. La función GetNamespaceCreationTime interactúa con el servidor API de Kubernetes para obtener detalles del espacio de nombres. Esto dificultó la escritura de pruebas aisladas sin depender de interacciones API reales.

Solución que utiliza un cliente falso

El paquete falso en la biblioteca client-go proporciona una manera de crear clientes falsos que pueden ser utilizado con fines de prueba. Estos clientes falsos imitan el comportamiento de clientes reales pero operan en un entorno controlado.

En este caso, puede utilizar la función NewSimpleClientset del paquete falso para crear un cliente Kubernetes falso. Este cliente se puede utilizar para sustituir al cliente real en sus pruebas unitarias, lo que le permite aislar el comportamiento de su código y centrarse en la lógica de prueba.

Implementación de prueba

Para probar la función GetNamespaceCreationTime , puede crear un caso de prueba de la siguiente manera:

func TestGetNamespaceCreationTime(t *testing.T) {
  fakeClient := fake.NewSimpleClientset()
  got := GetNamespaceCreationTime(fakeClient, "default")
  want := int64(1257894000)

  // Inject mock Namespace data into the fake client
  nsMock := fakeClient.CoreV1().Namespaces()
  nsMock.Create(&v1.Namespace{
    ObjectMeta: metav1.ObjectMeta{
      Name:              "default",
      CreationTimestamp: metav1.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
    },
  })

  if got != want {
    t.Errorf("got %q want %q", got, want)
  }
}

En esta prueba, crea un cliente falso que reemplaza al cliente real de Kubernetes. Luego inyecta datos de espacio de nombres simulados en el cliente falso. Esto le permite simular la respuesta que esperaría del servidor API al obtener la hora de creación del espacio de nombres. Luego puede afirmar que el resultado de la función GetNamespaceCreationTime coincide con el valor esperado.

Beneficios de usar un cliente falso

Usar un cliente falso en sus pruebas unitarias proporciona varios beneficios:

  • Aislamiento: Aísla el código de prueba de posibles efectos secundarios causados ​​por interacciones con agentes externos. recursos.
  • Velocidad: Las pruebas unitarias con clientes falsos se ejecutan mucho más rápido que aquellas que involucran llamadas API reales.
  • Determinismo: Garantiza consistencia y previsibilidad resultados, ya que el comportamiento del cliente falso está controlado por el código de prueba.
Declaración de liberación Este artículo se reimprime en: 1729745001 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3