fakeenv

A simple wrapper of std::env which allows faking the environment.

Example

Using the real 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);

} ```

Making a fake environment

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); } ```

Faking user directories

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());