每次测试都需要我想做的昂贵的事情; 如何在测试之间共享状态,而不是在外部存储它(例如环境变量,文件等)?
不锈钢有一个名为的设置宏before_each,我想的是类似的东西,shared_values但是它的变量可以被所有测试访问,并且也可以运行一次(在测试套件的开头).
测试没有什么特别之处.它们是在多个线程中运行的"正义"函数.因此,一个解决方案就是在其他代码中执行相同的操作:创建一个全局可变单例:
#[macro_use]
extern crate lazy_static;
lazy_static! {
static ref DATABASE: String = {
format!("{}{}", "This was", " expensive")
};
}
#[test]
fn one() {
println!("{}", *DATABASE);
}
#[test]
fn two() {
println!("{}", *DATABASE);
}
Run Code Online (Sandbox Code Playgroud)
测试框架没有为"后"回调提供钩子,所以没有很好的途径来清理这个资源.我也不相信Droplazy_static变量.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |