
Testing
Unit-Tests, Integrationstests, Doc-Tests, Assertions, should_panic, Benchmarks, Testorganisation
1Welches Attribut markiert eine Funktion als Unit-Test in Rust?
Welches Attribut markiert eine Funktion als Unit-Test in Rust?
Antwort
Das Attribut #[test] teilt dem Rust-Compiler mit, dass die annotierte Funktion ein Unit-Test ist. Beim Ausführen von cargo test werden alle mit diesem Attribut markierten Funktionen automatisch erkannt und ausgeführt. Tests werden nur mit dem Test-Profil kompiliert und sind nicht im Produktions-Binary enthalten.
2Welcher Cargo-Befehl führt alle Tests in einem Rust-Projekt aus?
Welcher Cargo-Befehl führt alle Tests in einem Rust-Projekt aus?
Antwort
Der Befehl cargo test kompiliert das Projekt mit aktivierten Tests und führt alle Unit-, Integrations- und Dokumentationstests aus. Er erkennt automatisch mit #[test] markierte Funktionen, Tests im Verzeichnis tests/ und Codebeispiele in der Dokumentation. Optionen ermöglichen das Filtern der Tests nach Name oder Modul.
3Welches Makro sollte verwendet werden, um in einem Test zu prüfen, dass zwei Werte gleich sind?
Welches Makro sollte verwendet werden, um in einem Test zu prüfen, dass zwei Werte gleich sind?
Antwort
Das Makro assert_eq! vergleicht zwei Werte und lässt den Test fehlschlagen, wenn sie nicht gleich sind. Dank des Debug-Traits zeigt es bei einem Fehlschlag automatisch die verglichenen Werte an, was das Debugging erleichtert. Im Gegensatz zu assert! liefert es eine aussagekräftigere Fehlermeldung, die den erwarteten und den tatsächlichen Wert zeigt.
Wo sollten Integrationstests in einem Rust-Projekt platziert werden?
Welches Attribut sollte verwendet werden, um zu testen, dass eine Funktion einen Panic auslöst?
+15 Interview-Fragen
Weitere Rust-Interviewthemen
Rust-Grundlagen
Ownership & Borrowing
Structs & Enums
Fehlerbehandlung
Collections
Module & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Cargo & Ecosystem
Pattern Matching
Makros
Serde & Serialisierung
Unsafe Rust
Fortgeschrittene Traits
Fortgeschrittene Lifetimes
Type System
Tokio & Async I/O
Performance-Optimierung
Memory Management
Web Frameworks
Database Integration
Rust Design Patterns
Meistere Rust für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten