MST

星途 面试题库

面试题:Rust 单元测试中的断言使用

请简述在Rust单元测试中,如何使用常用的断言宏来验证函数的返回值。例如,对于一个函数`add(a: i32, b: i32) -> i32`,它返回两个整数的和,编写单元测试来验证`add(2, 3)`是否返回5。同时说明`assert!`、`assert_eq!`和`assert_ne!`这几个断言宏的适用场景。
35.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

在Rust单元测试中,可使用如下方式验证函数返回值:

fn add(a: i32, b: i32) -> i32 {
    a + b
}

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

    #[test]
    fn test_add() {
        let result = add(2, 3);
        assert_eq!(result, 5);
    }
}

assert!断言宏适用场景

assert!宏用于验证一个布尔表达式是否为true。当表达式为false时,测试失败。常用于验证某个条件是否满足,例如:

#[test]
fn test_assert() {
    let x = 10;
    assert!(x > 5);
}

assert_eq!断言宏适用场景

assert_eq!宏用于验证两个值是否相等。它会对两个值进行比较,若不相等则测试失败。常用于验证函数的返回值是否与预期值一致,如上述add函数测试中,验证add(2, 3)的返回值是否等于5

assert_ne!断言宏适用场景

assert_ne!宏与assert_eq!相反,用于验证两个值是否不相等。当两个值相等时,测试失败。例如:

#[test]
fn test_assert_ne() {
    let a = 5;
    let b = 10;
    assert_ne!(a, b);
}