rust / beginner
Snippet
Basis-Unit-Tests schreiben
Tests leben in Modulen markiert mit #[cfg(test)]. #[test] markiert Testfunktionen die bei Misserfolg paniken. assert_eq! pruft Gleichheit, assert! pruft boolean-Bedingungen, #[should_panic] erwartet dass der Test fehlschlagt. Verwende cargo test um alle Tests auszufuhren.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
fn add(a: i32, b: i32) -> i32 {a + b}#[cfg(test)]mod tests {use super::*;#[test]fn test_basic_addition() {assert_eq!(add(2, 3), 5);assert_eq!(add(0, 0), 0);}#[test]#[should_panic]fn test_negative_numbers() {let result = add(-5, 3);assert!(result < 0);}#[test]fn test_commutative() {assert_eq!(add(3, 5), add(5, 3));}}
Erklärung
1
#[cfg(test)] mod tests {
Bedingte Kompilierung - nur wahrend des Testens kompiliert
2
use super::*;
Importiert Elemente des Elternmoduls zum Testen
3
#[test] fn test_basic_addition() {
Testfunktion markiert mit Attribut
4
assert_eq!(add(2, 3), 5);
Behauptet dass aktueller Wert dem erwarteten entspricht
5
#[should_panic]
Erwartet dass Test panikt - markiert erwarteten Fehlschlag