PR3-Rust-SS26/F-testing/01_testing.rs

39 lines
687 B
Rust

// Tests werden mit "cargo test" ausgeführt
fn is_even(n: i32) -> bool {
n % 2 == 0
}
fn double(n: i32) -> i32 {
n * 2
}
fn add_one(n: i32) -> i32 {
n + 1
}
fn main() {
println!("{} ist gerade: {}", 4, is_even(4));
println!("doppelt von 5: {}", double(5));
}
// Tests liegen generell im selben file wie die Function selbst
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn even() {
assert!(is_even(4)); // bool
}
#[test]
fn double_of_5() {
assert_eq!(double(5), 10); // Vergleich auf Gleichheit
}
#[test]
fn add_one_changes_value() {
assert_ne!(add_one(5), 5); // Vergleich auf Ungleichheit
}
}