| Crates.io | fakeenv |
| lib.rs | fakeenv |
| version | 0.1.0 |
| created_at | 2020-01-19 07:52:24.503906+00 |
| updated_at | 2020-01-19 07:52:24.503906+00 |
| description | A simple wrapper of `std::env` which allows faking the environment |
| homepage | |
| repository | https://github.com/qnighy/fakeenv |
| max_upload_size | |
| id | 200028 |
| size | 31,733 |
A simple wrapper of std::env which allows faking the environment.
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 is only turned on when the fake feature is enabled.
As this is mostly for testing purpose, you might want to enable the feature like this:
[dependencies]
fakeenv = "0.1.0"
[dev-dependencies]
fakeenv = { version = "0.1.0", features = ["fake"] }
Then you can generate a fake environment using 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);
}
The dirs feature enables faking the dirs functions.
[dependencies]
fakeenv = { version = "0.1.0", features = ["dirs"] }
let env = EnvStore::real();
println!("home directory = {:?}", env.home_dir());