rust 如何将这些测试放在一个单独的文件中?

rsl1atfo  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(182)

main.rs中,我创建了一些函数来减小main()的大小。在它们内部,我使用结构体和它们的方法。

fn handle_input() {
  // some code
}

fn handle_quit() {
  // some code
) {

fn main() {
   // handle_handle_input() being is used here
   // handle_quit() being is used here
}

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

    #[test]
    fn test_handle_input() {
        // some code
    }

    #[test]
    fn test_handle_quit() {
        // some code
    }
}

现在所有的测试都通过了但是,main.rs变得太大了,所以我想将测试放在它们自己的文件中。
既然我不能再use use super::*了,我该怎么做呢?或者,唯一的方法是将这些函数转换为结构体方法,并将它们导入新的测试文件中?

qojgxg4l

qojgxg4l1#

您可以将模块声明替换为

#[cfg(test)]
mod tests;

然后将测试移动到与main.rs相同目录下的文件tests.rs中。文件名必须与上面声明中的模块名匹配。文件tests.rs应该包含代码中mod tests之后的花括号内的所有内容,不包括花括号。
一般来说,在同一个文件中包含代码和测试是Rust的常见目的,因此您可以考虑以不同的方式将文件拆分为模块。

相关问题