assert_eq! verifies that an actual value equals the expected value. If they differ, the program stops with a clear failure.

Program

Play the program to choose a subtotal, compute a total, and check it with assert_eq!.

assert_equal.rs
fn main() {
    let subtotal = ;
    let total = add_fee(subtotal);
    let expected = subtotal + 2;
    assert_eq!(total, expected);
    println!("{total}");
}

fn add_fee(value: i32) -> i32 {
    value + 2
}
fn main() {
    let subtotal = ;
    let total = add_fee(subtotal);
    let expected = subtotal + 2;
    assert_eq!(total, expected);
    println!("{total}");
}

fn add_fee(value: i32) -> i32 {
    value + 2
}
fn main() {
    let subtotal = ;
    let total = add_fee(subtotal);
    let expected = subtotal + 2;
    assert_eq!(total, expected);
    println!("{total}");
}

fn add_fee(value: i32) -> i32 {
    value + 2
}
assert_eq! `assert_eq!(actual, expected)` records the intended relationship in executable code.
expected value Computing `expected` separately makes the test intent visible.
testable helper `add_fee` is small and deterministic, so it is easy to check.