Skip to content
On this page

测试3:exercises/tests/tests3.rs

题目

rust
// tests3.rs
//
// This test isn't testing our function -- make it do that in such a way that
// the test passes. Then write a second test that tests whether we get the
// result we expect to get when we call `is_even(5)`.
//
// Execute `rustlings hint tests3` or use the `hint` watch subcommand for a
// hint.

// I AM NOT DONE

pub fn is_even(num: i32) -> bool {
    num % 2 == 0
}

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

    #[test]
    fn is_true_when_even() {
        assert!();
    }

    #[test]
    fn is_false_when_odd() {
        assert!();
    }
}

这个题目不是考函数的,而是让它的单元测试顺利通过。

编写的第二个单元测试用来测试我们调用is_even(5)的时候是否是我们期望的结果。

题目解析

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

    #[test]
    fn is_true_when_even() {
        assert!(); 
        assert!(is_even(2)); 
    }

    #[test]
    fn is_false_when_odd() {
        assert!(); 
        assert!(!is_even(5)); 
    }
}

为了更清楚,也可以使用下面这种方式:

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

    #[test]
    fn is_true_when_even() {
        assert!(); 
        assert!(is_even(2) == true); 
    }

    #[test]
    fn is_false_when_odd() {
        assert!(); 
        assert!(is_even(5) == false); 
    }
}

参考资料

Powered by VitePress