Fix(test): Compare results to GNU echo
- Added new TestResult type - Automated 5 testing cases with bash script
This commit is contained in:
parent
9f673b28b4
commit
0736d6e81a
9
mk-outs.sh
Executable file
9
mk-outs.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
OUTDIR="tests/expected"
|
||||
[[ ! -d "$OUTDIR" ]] && mkdir -p "$OUTDIR"
|
||||
|
||||
echo "Hello there" > $OUTDIR/hello1.txt
|
||||
echo "Hello" "there" > $OUTDIR/hello2.txt
|
||||
echo -n "Hello there" > $OUTDIR/hello1.n.txt
|
||||
echo -n "Hello" "there" > $OUTDIR/hello2.n.txt
|
37
tests/cli.rs
37
tests/cli.rs
@ -1,18 +1,43 @@
|
||||
use assert_cmd::Command;
|
||||
use predicates::prelude::*;
|
||||
use std::fs;
|
||||
|
||||
type TestResult = Result<(), Box<dyn std::error::Error>>;
|
||||
|
||||
#[test]
|
||||
fn dies_no_args() {
|
||||
let mut cmd = Command::cargo_bin("echor").expect("cargo binary error");
|
||||
fn dies_no_args() -> TestResult {
|
||||
let mut cmd = Command::cargo_bin("echor")?;
|
||||
|
||||
cmd.assert()
|
||||
.failure()
|
||||
.stderr(predicate::str::contains("Usage"));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn run(args: &[&str], expected_file: &str) -> TestResult {
|
||||
let expected = fs::read_to_string(expected_file)?;
|
||||
Command::cargo_bin("echor")?
|
||||
.args(args)
|
||||
.assert()
|
||||
.success()
|
||||
.stdout(expected);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn runs() {
|
||||
let mut cmd = Command::cargo_bin("echor").expect("cargo binary error");
|
||||
|
||||
cmd.arg("hello").assert().success();
|
||||
fn hello1() -> TestResult {
|
||||
run(&["Hello there"], "tests/expected/hello1.txt")
|
||||
}
|
||||
#[test]
|
||||
fn hello2() -> TestResult {
|
||||
run(&["Hello", "there"], "tests/expected/hello2.txt")
|
||||
}
|
||||
#[test]
|
||||
fn hello1_no_newline() -> TestResult {
|
||||
run(&["Hello there", "-n"], "tests/expected/hello1.n.txt")
|
||||
}
|
||||
#[test]
|
||||
fn hello2_no_newline() -> TestResult {
|
||||
run(&["-n", "Hello", "there"], "tests/expected/hello2.n.txt")
|
||||
}
|
||||
|
1
tests/expected/hello1.n.txt
Normal file
1
tests/expected/hello1.n.txt
Normal file
@ -0,0 +1 @@
|
||||
Hello there
|
1
tests/expected/hello1.txt
Normal file
1
tests/expected/hello1.txt
Normal file
@ -0,0 +1 @@
|
||||
Hello there
|
1
tests/expected/hello2.n.txt
Normal file
1
tests/expected/hello2.n.txt
Normal file
@ -0,0 +1 @@
|
||||
Hello there
|
1
tests/expected/hello2.txt
Normal file
1
tests/expected/hello2.txt
Normal file
@ -0,0 +1 @@
|
||||
Hello there
|
Loading…
x
Reference in New Issue
Block a user