【发布时间】:2017-09-23 10:33:57
【问题描述】:
我有一个测试,它在深入研究测试细节之前初始化一个变量,我想用相同的变量进行第二次测试,而不是重复初始化代码:
#[test]
fn test_one() {
let root = Path::new("data/");
// the rest of the test
}
#[test]
fn test_two() {
let root = Path::new("data/");
// the rest of the test
}
我不认为 static 或 const 会这样做,因为事先不会知道大小,尽管 PathBuf.from(path) 可能会这样做,除了静态/常量变量的初始化表达式不能太复杂.
我见过lazy_static,但没有见过任何在测试中使用它的例子。这是在看到编译器错误“extern crate loading macros must be at the crate root”之后,在线搜索告诉我这是在main()之外,但测试没有main函数。
在 Java 中,我会定义变量,然后在 setup() 方法中对其进行初始化,但我无法在网上看到 Rust 的示例。
【问题讨论】:
-
stackoverflow.com/a/43093371/217408 对我来说看起来不错(但我刚开始使用 Rust)
标签: unit-testing rust