Я думаю, что ответ будет довольно простым для вас, однако я не могу справиться с этим в одиночку. Прежде всего, функция в скрипте выглядит следующим образом:
function assertEqual() {
local expected=$1
local actual=$2
local message=$3
echo $message
if [ "$actual" = "$expected" ]
then
echo "Test OK (actual value: $actual)"
return 0
else
echo "Test FAILED, EXPECTED VALUE: $expected, ACTUAL VALUE: $actual, WILL ABORT"
return 1
fi
}
Логические функции c этой функции делают то, что должны делать, это правильно, однако я не могу найти способ вывести сообщение $ в консоль:
local message=$3
echo $message
Я вызываю такую функцию:
assertEqual "$MOV_ID_REVS_RECS" $(echo $RESPONSE | jq .movieId) "Comparing id's"
assertEqual 3 $(echo $RESPONSE | jq ".recommendations | length") "Comparing recommendations length"
assertEqual 3 $(echo $RESPONSE | jq ".reviews | length") "Comparing reviews length"
Вывод, который я получаю, выглядит так:
Test OK (HTTP Code: 200)
Test OK (HTTP Code: 200)
Test OK (HTTP Code: 200)
Wait for messages to be processed...
Test OK (HTTP Code: 200)
Test OK (actual value: 2)
Test OK (actual value: 3)
Test FAILED, EXPECTED VALUE: 3, ACTUAL VALUE: 1, WILL ABORT
Вы можете видеть, что есть пустые белые строки, которые означает, что я неправильно передаю третий аргумент?