A simple wrapper of std::env
which allows faking the environment.
```rust use fakeenv::EnvStore;
fn answer(env: &EnvStore) -> i32 { env.var("THE_ANSWER").unwrap().parse().unwrap() }
fn main() { std::env::setvar("THEANSWER", "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:
```toml [dependencies] fakeenv = "0.1.0"
[dev-dependencies] fakeenv = { version = "0.1.0", features = ["fake"] } ```
Then you can generate a fake environment using [EnvStore::fake
]:
```rust use fakeenv::EnvStore;
fn answer(env: &EnvStore) -> i32 { env.var("THE_ANSWER").unwrap().parse().unwrap() }
fn main() { let env = EnvStore::fake(); env.setvar("THEANSWER", "42"); assert_eq!(answer(&env), 42); } ```
The dirs
feature enables faking the [dirs
] functions.
toml
[dependencies]
fakeenv = { version = "0.1.0", features = ["dirs"] }
rust
let env = EnvStore::real();
println!("home directory = {:?}", env.home_dir());