Assert.sh is intended to give the assertion mechanism to shell scripts with well-known assert functions like assert_eq, assert_array_eq, or assert_empty.
Inspired by Assert class of JUnit
> $ git clone https://github.com/torokmark/assert.sh.git; cd assert.sh
> $ source assert.sh
> $ assert_eq "hello" "world"
> $ echo "$?"
# => 1I. Clone the repository
git clone https://github.com/torokmark/assert.sh.gitOr copy the assert.sh where your project is located.
II. Edit the script where you would like to use asserts and paste the next line on the top:
source './assert.sh'III. Now assert functions are available for use.
assert_eq "hello" "world"0 return status is considered true and anything else is considered false.
assert_eqtakes two strings and checks whether they are the same based on the character strings.assert_not_eqis the opposite ofassert_eq.assert_truetakes a parameter and returns 0 confirming the parameter is true.assert_falsetakes a parameter and decides whether it is false.assert_array_eqtakes two arrays and compare them by items.assert_array_not_eqtakes two arrays and return 0 if the items are not the same on the same index.assert_emptytakes a string and returns 0 if it is emptyassert_not_emptyis the opposite ofassert_empty.assert_containchecks whether the first argument contains the second one.assert_not_containcheck whether the first argument does not contain the second one.assert_gtchecks whether the first param is greater than the second.assert_gechecks whether the first param is greator than or equal to the second one.assert_ltchecks whether the first param is less than the second one.assert_lechecks whether the first param is less than or equal to the second one.
Example:
source "./assert.sh"
local expected actual
expected="Hello"
actual="World!"
assert_eq "$expected" "$actual" "not equivalent!"
# => x Hello == World :: not equivalent! source "./assert.sh"
local expected actual
expected="Hello"
actual="Hello"
assert_eq "$expected" "$actual"
if [ "$?" == 0 ]; then
log_success "assert_eq returns 0 if two words are equal"
else
log_failure "assert_eq should return 0"
fiIf the return status ($?) of assert_eq is equal to 0, which is considered true according to the convention.
If the assert function returns 1, the expected and actual values are differred.