Rust 铁锈-罐';t在测试/can'中使用enum;不要在子模块上使用类型

Rust 铁锈-罐';t在测试/can'中使用enum;不要在子模块上使用类型,rust,Rust,我试图在同一个文件中的测试中使用枚举,但它不起作用。下面是一个简单的例子: #[derive(PartialEq)] enum Token { Assign, Plus, } // This function works, so I can access Token here fn toto() -> Token { Token::Assign } #[cfg(test)] mod tests { #[test] fn next_token() {

我试图在同一个文件中的测试中使用枚举,但它不起作用。下面是一个简单的例子:

#[derive(PartialEq)]
enum Token {
    Assign,
    Plus,
}

// This function works, so I can access Token here
fn toto() -> Token {
  Token::Assign
}

#[cfg(test)]
mod tests {
  #[test]
  fn next_token() {
    let inputs = "=+";

    let expected_tokens = [Token::Assign, Token::Plus];
    // The error I get:    ^^^^^ use of undeclared type or module `Token`
  }
}
#[derive(PartialEq)]
enum Token {
    Assign,
    Plus,
}

fn toto() -> Token {
  Token::Assign
}

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

  #[test]
  fn next_token() {
    let inputs = "=+";

    let expected_tokens = [Token::Assign, Token::Plus];
  }
}

我希望这个例子能起作用,但事实并非如此,对于
expected_Token
的两个令牌,我得到了“使用未声明的类型或模块
令牌”
,我缺少
使用super:*mod tests
中的code>,它从外部作用域(这里是文件)导入名称。下面是更正的最小示例:

#[derive(PartialEq)]
enum Token {
    Assign,
    Plus,
}

// This function works, so I can access Token here
fn toto() -> Token {
  Token::Assign
}

#[cfg(test)]
mod tests {
  #[test]
  fn next_token() {
    let inputs = "=+";

    let expected_tokens = [Token::Assign, Token::Plus];
    // The error I get:    ^^^^^ use of undeclared type or module `Token`
  }
}
#[derive(PartialEq)]
enum Token {
    Assign,
    Plus,
}

fn toto() -> Token {
  Token::Assign
}

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

  #[test]
  fn next_token() {
    let inputs = "=+";

    let expected_tokens = [Token::Assign, Token::Plus];
  }
}