Rust如何在tests模块内访问外部定义的Example结构体?
如何在"tests"模块内部访问外部定义的"Example"?
src/main.rs 的初始代码:
struct Example {} #[cfg(test)] mod tests { #[test] fn example() { // Example 不在当前作用域内 } }
当前 Example 处于 tests 模块的作用域之外,无法直接访问。
解决方法如下:
方法一:使用
super关键字直接访问
通过super::引用父作用域的项:struct Example {} #[cfg(test)] mod tests { #[test] fn example() { let _ = super::Example {}; } }方法二:用
use语句引入作用域
在tests模块内引入外部项,之后可直接使用:struct Example {} #[cfg(test)] mod tests { use super::Example; #[test] fn example() { let _ = Example {}; } }方法三:使用
crate关键字从根访问
若Example定义在 crate 根,可通过crate::直接访问:struct Example {} #[cfg(test)] mod tests { #[test] fn example() { let _ = crate::Example {}; } }
内容的提问来源于stack exchange,提问作者Test
相关产品推荐
相关产品推荐

