Maison  >  Article  >  développement back-end  >  Comment tester en utilisant le langage Go ?

Comment tester en utilisant le langage Go ?

王林
王林original
2023-06-11 10:50:29928parcourir

Go est un excellent langage de programmation connu pour son efficacité, sa simplicité et sa puissante bibliothèque standard. Lorsque nous développons des applications à l’aide de Go, l’écriture et l’exécution de code de test en font partie intégrante. Cet article explique comment utiliser le langage Go pour tester afin de garantir que notre code fonctionne comme prévu.

  1. Écriture du code de test

En langage Go, le code de test et le code ordinaire sont équivalents. Par conséquent, nous pouvons écrire et exécuter des codes de test pour nous assurer qu’ils exécutent correctement notre application. En règle générale, le code de test doit être placé dans un répertoire distinct pour faciliter la gestion et la maintenance.

Ce qui suit est un exemple simple :

package main

import "testing"

func TestAdd(t *testing.T) {
    result := add(2, 3)
    expected := 5
    if result != expected {
        t.Errorf("add(2, 3) = %d; expected %d", result, expected)
    }
}

func add(a, b int) int {
    return a + b
}

Dans l'exemple ci-dessus, nous avons écrit une fonction de test nommée "TestAdd", qui teste la fonction que nous avons écrite nous-mêmes. Qu'est-ce que l'ajout( ) la fonction le fait. Les fonctions de test commencent généralement par « Test » et nécessitent un paramètre *testing.T nommé « t », qui est utilisé pour rapporter les résultats des tests.

Dans la fonction test, nous appelons d'abord la fonction add() et stockons son résultat dans la variable result. Ensuite, nous stockons le résultat attendu dans la variable attendue et utilisons une instruction if pour comparer le résultat au résultat attendu. Si les résultats ne sont pas ceux attendus, nous signalerons une erreur en utilisant la fonction t.Errorf().

  1. Exécuter le test

Une fois que nous avons écrit le code de test, nous devons l'exécuter pour nous assurer que notre code fonctionne correctement. En langage Go, le code de test peut être facilement exécuté à l’aide de la commande go test.

Basculez vers le répertoire où le code de test est stocké dans le terminal et entrez la commande suivante :

go test

Cette commande détectera automatiquement le code de test dans le répertoire et les exécutera . Si tous les tests réussissent, il affichera le message suivant :

ok      <package_name>    0.500s

Sinon, il affichera les tests qui ont échoué et renverra un message d'erreur approprié.

  1. Rédaction de code d'analyse comparative

En plus des tests unitaires, nous devons également effectuer des analyses comparatives pour déterminer les performances de notre code sur différentes quantités d'entrée performances ci-dessous. En langage Go, nous pouvons utiliser la fonction Benchmark du package de test pour écrire du code de référence.

Ce qui suit est un exemple :

package main

import "testing"

func BenchmarkAdd(b *testing.B) {
    for i := 0; i < b.N; i++ {
        add(2, 3)
    }
}

func add(a, b int) int {
    return a + b
}

Dans l'exemple ci-dessus, nous avons écrit une fonction de référence appelée "BenchmarkAdd", qui teste les performances de la fonction add que nous avons nous-mêmes écrite (). Les fonctions de référence commencent généralement par « Benchmark » et nécessitent un paramètre *testing.B nommé « b ».

Dans la fonction de référence, nous utilisons une boucle for pour exécuter la fonction add() b.N fois, où b.N est un entier représentant le nombre de fois que la fonction doit être exécutée.

  1. Exécution de benchmarks

Semblable à l'exécution de tests unitaires, nous pouvons facilement exécuter des benchmarks à l'aide de la commande go test. Dans le terminal, basculez vers le répertoire où est stocké le code du benchmark et entrez la commande suivante :

go test -bench=.

Cette commande détectera automatiquement le code du benchmark dans le répertoire et les exécutera. Si tous les tests réussissent, le message suivant s'affichera :

BenchmarkAdd-4       10000        174060 ns/op

Où, "BenchmarkAdd-4" fait référence au nom de la fonction de référence et au nombre de GOMAXPROCS, et "10000" fait référence à l'exécution de l'ajout () Le nombre de fois de la fonction, "174060 ns/op" fait référence au temps moyen consommé à chaque fois que la fonction add() est exécutée.

Conclusion

Dans cet article, nous avons présenté comment utiliser le langage Go pour les tests. Nous avons d'abord appris à écrire du code de test unitaire pour nous assurer que notre code fonctionne correctement. Ensuite, nous avons appris à écrire du code de référence pour déterminer les performances de notre code avec différentes quantités d'entrées.

Dans l'ensemble, les tests font partie intégrante de la programmation Go. Avec de bons tests, nous pouvons améliorer et modifier notre code avec une plus grande confiance, ce qui aboutit à des applications plus fiables.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn