Fondamentaux des tests d'intégration en Rust

RustRustBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, les tests d'intégration sont abordés, qui consistent à tester plusieurs parties d'une bibliothèque ensemble en utilisant son interface publique. Les tests d'intégration peuvent être placés dans le répertoire tests à côté du répertoire src dans une boîte à outils Rust, et sont exécutés en utilisant la commande cargo test. De plus, le code commun peut être partagé entre les tests d'intégration en créant un module avec des fonctions publiques et en l'import ant dans les tests.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.

Tests d'intégration

Les tests unitaires testent un module isolément, un à la fois. Ils sont petits et peuvent tester le code privé. Les tests d'intégration sont externes à votre boîte à outils et utilisent seulement son interface publique, de la même manière que n'importe quel autre code. Leur but est de tester que de nombreuses parties de votre bibliothèque fonctionnent correctement ensemble.

Cargo cherche les tests d'intégration dans le répertoire tests à côté de src.

Fichier src/lib.rs :

// Définissez ceci dans une boîte à outils appelée `adder`.
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

Fichier avec le test : tests/integration_test.rs :

#[test]
fn test_add() {
    assert_eq!(adder::add(3, 2), 5);
}

Exécution des tests avec la commande cargo test :

$ cargo test
running 0 tests

test result: ok. 0 passed
0 failed
0 ignored
0 measured
0 filtered out

Running target/debug/deps/integration_test-bcd60824f5fbfe19

running 1 test
test test_add... ok

test result: ok. 1 passed
0 failed
0 ignored
0 measured
0 filtered out

Doc-tests adder

running 0 tests

test result: ok. 0 passed
0 failed
0 ignored
0 measured
0 filtered out

Chaque fichier source Rust dans le répertoire tests est compilé comme une boîte à outils séparée. Pour partager du code entre les tests d'intégration, on peut créer un module avec des fonctions publiques, l'importer et l'utiliser dans les tests.

Fichier tests/common/mod.rs :

pub fn setup() {
    // du code de configuration, comme la création de fichiers/dossiers requis,
    // le lancement de serveurs, etc.
}

Fichier avec le test : tests/integration_test.rs

// importation du module commun.
mod common;

#[test]
fn test_add() {
    // utilisation du code commun.
    common::setup();
    assert_eq!(adder::add(3, 2), 5);
}

Créer le module sous la forme de tests/common.rs fonctionne également, mais n'est pas recommandé car le lanceur de tests traitera le fichier comme une boîte à outils de test et tentera d'exécuter les tests à l'intérieur.

Sommaire

Félicitations! Vous avez terminé le laboratoire sur les Tests d'intégration. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.