Crate testcall[][src]

Expand description

Companinon crate to ‘BinTest’, implements test facilities

Description

A TestCall uses BinTest and std::process::Command to wrap process execution in a way that is ergonomic to use for (repeated) testing. Few more test facilities are provided and will grow in future.

Example

#[test]
fn myprogram_test() {
    let executables = BinTest::new();
    let mut myprogram = TestCall::new(&executables, "myprogram");

    myprogram.current_dir(Box::new(TempDir::new().expect("created tempdir")));
    myprogram
        .call(["--version"])
        .assert_success()
        .assert_stdout_utf8("myprogram 0.1.*");
}

Future Plans

New features will be added as needed, PR’s are welcome. This is work in progress.

Things to be done soon are:

  • Populating TestDirs from template directories
  • Validating directory contents

Structs

Augment a TempDir with a custom callback function that can do additional cleanup work (like unmounting filesystem etc.)

A TestCall object binds a BinTest::Command to a single executable and environment and provides functions to call this multiple times.

Enums

Captured keys which can be identified by numeric index or by name.

Traits

Trait for test directoy objects

Augment std::process::Output with testing and assertions