[go: up one dir, main page]

assert_cmd 0.1.0

Test CLI Applications.
Documentation
extern crate assert_cmd;
extern crate predicates;

use std::process;

use assert_cmd::prelude::*;
use predicates::prelude::*;

#[test]
fn main_binary() {
    let mut cmd = process::Command::main_binary().unwrap();
    cmd.env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}

#[test]
fn main_binary_with_empty_env() {
    let mut cmd = process::Command::main_binary().unwrap();
    cmd.env_clear().env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}

#[test]
fn cargo_binary() {
    let mut cmd = process::Command::cargo_bin("bin_fixture").unwrap();
    cmd.env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}

#[test]
fn cargo_binary_with_empty_env() {
    let mut cmd = process::Command::cargo_bin("bin_fixture").unwrap();
    cmd.env_clear().env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}

#[test]
fn cargo_example() {
    let mut cmd = process::Command::cargo_example("example_fixture").unwrap();
    cmd.env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}

#[test]
fn cargo_example_with_empty_env() {
    let mut cmd = process::Command::cargo_example("example_fixture").unwrap();
    cmd.env_clear().env("stdout", "42");
    let expected: Vec<_> = vec![b'4', b'2', b'\n'];
    cmd.assert().stdout(&predicate::eq(expected));
}