
Testing
Test unitari, test di integrazione, doc test, assertion, should_panic, benchmark, organizzazione dei test
1Quale attributo contrassegna una funzione come test unitario in Rust?
Quale attributo contrassegna una funzione come test unitario in Rust?
Risposta
L'attributo #[test] indica al compilatore Rust che la funzione annotata è un test unitario. Quando si esegue cargo test, tutte le funzioni contrassegnate con questo attributo vengono automaticamente individuate ed eseguite. I test vengono compilati solo con il profilo test e non sono inclusi nel binario di produzione.
2Quale comando Cargo esegue tutti i test in un progetto Rust?
Quale comando Cargo esegue tutti i test in un progetto Rust?
Risposta
Il comando cargo test compila il progetto con i test abilitati ed esegue tutti i test unitari, di integrazione e di documentazione. Individua automaticamente le funzioni contrassegnate con #[test], i test nella directory tests/ e gli esempi di codice nella documentazione. Le opzioni permettono di filtrare i test per nome o modulo.
3Quale macro si dovrebbe usare per verificare che due valori siano uguali in un test?
Quale macro si dovrebbe usare per verificare che due valori siano uguali in un test?
Risposta
La macro assert_eq! confronta due valori e fa fallire il test se non sono uguali. Grazie al trait Debug, mostra automaticamente i valori confrontati in caso di fallimento, facilitando il debugging. A differenza di assert!, fornisce un messaggio di errore più informativo che mostra il valore atteso e il valore ottenuto.
Dove dovrebbero essere collocati i test di integrazione in un progetto Rust?
Quale attributo si dovrebbe usare per testare che una funzione provochi un panic?
+15 domande da colloquio
Altri argomenti di colloquio Rust
Fondamenti di Rust
Ownership & Borrowing
Structs & Enums
Gestione degli errori
Collezioni
Moduli e package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Cargo & Ecosystem
Pattern Matching
Macro
Serde e serializzazione
Unsafe Rust
Trait avanzati
Lifetime Avanzati
Type System
Tokio & Async I/O
Ottimizzazione delle Prestazioni
Memory Management
Web Frameworks
Database Integration
Design Pattern in Rust
Padroneggia Rust per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis