Les tests unitaires sont essentiels pour garantir la fiabilité et la robustesse de code. Cependant, il peut être difficile de tester du code qui interagit avec des systèmes externes, tels que Kubernetes. C'est là que les faux clients entrent en jeu.
Pour tester le code fourni, nous devons créer un faux client pour remplacer Kubernetes Serveur API. Voici un exemple de la façon de procéder :
<br>import (<br> "fmt"<br> "k8s.io/api/core/v1"<br> metav1 "k8s.io/ apimachinery/pkg/apis/meta/v1"<br> faux "k8s.io/client-go/kubernetes/fake"<br> "time"<br>)</p> <p>func GetNamespaceCreationTime(kubeClient kubernetes.Interface , chaîne d'espace de noms) int64 {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ns, err := kubeClient.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) if err != nil { panic(err.Error()) } fmt.Printf("%v \n", ns.CreationTimestamp) return (ns.GetCreationTimestamp().Unix())
}
func TestGetNamespaceCreationTime(t *testing.T) {
kubeClient := fake.NewSimpleClientset()
got := GetNamespaceCreationTime (kubeClient, "default")
vouloir := int64(1257894000)
nsMock := kubeClient.CoreV1().Namespaces()
nsMock.Create(&v1.Namespace{
ObjectMeta: metav1.ObjectMeta{ Name: "default", CreationTimestamp: metav1.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC), },
})
si obtenu != vouloir {
t.Errorf("got %q want %q", got, want)
}
En créant un faux client, nous pouvons isoler le code testé des dépendances externes et exécuter efficacement des tests unitaires. Cette approche permet aux développeurs de tester les fonctionnalités de base du code sans avoir besoin de ressources Kubernetes réelles ou d'une connexion à un cluster.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!