
Testing
Unit tests, integration tests, doc tests, assertions, should_panic, benchmarks, test organization
1Quel attribut permet de marquer une fonction comme test unitaire en Rust ?
Quel attribut permet de marquer une fonction comme test unitaire en Rust ?
Réponse
L'attribut #[test] indique au compilateur Rust que la fonction annotée est un test unitaire. Lors de l'exécution de cargo test, toutes les fonctions marquées avec cet attribut sont automatiquement découvertes et exécutées. Les tests sont compilés uniquement avec le profil test et ne sont pas inclus dans le binaire de production.
2Quelle commande Cargo permet d'exécuter tous les tests d'un projet Rust ?
Quelle commande Cargo permet d'exécuter tous les tests d'un projet Rust ?
Réponse
La commande cargo test compile le projet avec les tests activés et exécute tous les tests unitaires, d'intégration et de documentation. Elle découvre automatiquement les fonctions marquées #[test], les tests dans le répertoire tests/ et les exemples de code dans la documentation. Des options permettent de filtrer les tests par nom ou module.
3Quelle macro utiliser pour vérifier que deux valeurs sont égales dans un test ?
Quelle macro utiliser pour vérifier que deux valeurs sont égales dans un test ?
Réponse
La macro assert_eq! compare deux valeurs et fait échouer le test si elles ne sont pas égales. Elle affiche automatiquement les valeurs comparées en cas d'échec grâce au trait Debug, ce qui facilite le débogage. Contrairement à assert!, elle fournit un message d'erreur plus informatif montrant la valeur attendue et la valeur obtenue.
Où placer les tests d'intégration dans un projet Rust ?
Quel attribut utiliser pour tester qu'une fonction provoque un panic ?
+15 questions d'entretien
Autres sujets d'entretien Rust
Les bases de Rust
Ownership & Borrowing
Structs & Enums
Gestion des erreurs
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Cargo & Ecosystem
Pattern Matching
Macros
Serde & Serialization
Unsafe Rust
Traits Avancés
Lifetimes Avancés
Type System
Tokio & Async I/O
Optimisation de Performance
Memory Management
Web Frameworks
Database Integration
Design Patterns Rust
Maîtrise Rust pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement