Rust:
Tests Schrijven

Hoe:

Rust maakt testen eenvoudig. Laten we een functie en een test ervoor schrijven.

De functie:

fn add_two(a: i32) -> i32 {
    a + 2
}

De test:

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_adds_two() {
        assert_eq!(4, add_two(2));
    }
}

Voer tests uit met cargo test. Verwachte uitvoer:

   Compiling my_crate v0.1.0 (/path/to/my_crate)
    Finished test [unoptimized + debuginfo] target(s) in 0.31 secs
     Running unittests (target/debug/deps/my_crate-abc123)

running 1 test
test tests::it_adds_two ... ok

test resultaat: ok. 1 geslaagd; 0 gefaald; 0 genegeerd; 0 gemeten; 0 gefilterd; voltooid in 0.00s

Diepere Duik

Historisch gezien worden tests geschreven na de code (post-hoc testing). Rust moedigt aan om tests naast of voor uw code te schrijven (test-gedreven ontwikkeling, TDD). Er zijn andere vormen van testen - integratietests, doc tests, enz. - elk met unieke implementatiedetails.

Tests in Rust worden typisch geschreven in hetzelfde bestand of een tests/ directory. Ze kunnen unit tests zijn (zoals het it_adds_two voorbeeld), integratietests (in aparte bestanden), of documentatietests (ingebed in doc commentaren). De Rust compiler weet dat functies met #[test] als tests behandeld moeten worden om met cargo test uit te voeren.

Zie Ook