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

ale*_*nco 2 testing rust

在 中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
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,所有测试都已通过。但是,main.rs变得太大了,所以我想将测试放在自己的文件中。

既然我不能再做到这一点,我怎样才能做到这一点use use super::*?或者也许唯一的方法是将这些函数转换为结构方法并将它们导入到新的测试文件中?

Sve*_*ach 5

您可以将模块声明替换为

#[cfg(test)]
mod tests;
Run Code Online (Sandbox Code Playgroud)

然后将测试移动到tests.rsmain.rs. 文件名必须与上面声明中的模块名称匹配。该文件应包含代码中tests.rs大括号内的所有内容(不包括大括号)。mod tests

一般来说,将代码和测试放在同一个文件中是很常见的,并且是 Rust 的预期目的,因此您可以考虑以不同的方式将文件拆分为模块。