当前位置:  开发笔记 > 编程语言 > 正文

在#[test]之间共享动态状态

如何解决《在#[test]之间共享动态状态》经验,为你挑选了1个好方法。

每次测试都需要我想做的昂贵的事情; 如何在测试之间共享状态,而不是在外部存储它(例如环境变量,文件等)?

不锈钢有一个名为的设置宏before_each,我想的是类似的东西,shared_values但是它的变量可以被所有测试访问,并且也可以运行一次(在测试套件的开头).



1> Shepmaster..:

测试没有什么特别之处.它们是在多个线程中运行的"正义"函数.因此,一个解决方案就是在其他代码中执行相同的操作:创建一个全局可变单例:

#[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);
}

测试框架没有为"后"回调提供钩子,所以没有很好的途径来清理这个资源.我也不相信Droplazy_static变量.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有