#mocking #environment #env #fake #faking #env-store

fakeenv

std::env 的简单封装,允许模拟环境。

1 个不稳定版本

0.1.0 2020年1月19日

#576测试

MIT/Apache

31KB
347

fakeenv

std::env 的简单封装,允许模拟环境。

示例

使用真实环境

use fakeenv::EnvStore;

fn answer(env: &EnvStore) -> i32 {
    env.var("THE_ANSWER").unwrap().parse().unwrap()
}

fn main() {
    std::env::set_var("THE_ANSWER", "42");

    let env = EnvStore::real();
    assert_eq!(answer(&env), 42);
}

创建模拟环境

仅在启用 fake 功能时才启用模拟。

由于此库主要用于测试目的,您可能希望像这样启用功能

[dependencies]
fakeenv = "0.1.0"

[dev-dependencies]
fakeenv = { version = "0.1.0", features = ["fake"] }

然后您可以使用 EnvStore::fake 生成模拟环境

use fakeenv::EnvStore;

fn answer(env: &EnvStore) -> i32 {
    env.var("THE_ANSWER").unwrap().parse().unwrap()
}

fn main() {
    let env = EnvStore::fake();
    env.set_var("THE_ANSWER", "42");
    assert_eq!(answer(&env), 42);
}

模拟用户目录

启用 dirs 功能可以模拟 dirs 函数。

[dependencies]
fakeenv = { version = "0.1.0", features = ["dirs"] }
let env = EnvStore::real();
println!("home directory = {:?}", env.home_dir());

依赖项

~65–540KB