저는 현재 테스트 함수에서 표준 bash 테스트 ( [[
)와 사전 정의 된 매처를 모두 사용할 수 있는 bash 테스트 프레임 워크를 작성 중 입니다. Matchers는 '[['에 대한 래퍼이며 반환 코드를 반환하는 것 외에도 예상 한 내용을 나타내는 의미있는 메시지를 설정합니다.
예:
string_equals() {
if [[ ! $1 = $2 ]]; then
error_message="Expected '$1' to be '$2'."
return 1
fi
}
따라서 matcher가 사용되어 실패하면 error_message가 설정됩니다.
이제 어느 시점에서 테스트가 성공했는지 테스트합니다. 성공하면 기대치를 녹색으로 인쇄하고 실패하면 빨간색으로 인쇄합니다.
또한 error_message 세트가있을 수 있으므로 메시지가 있는지 테스트하고 인쇄 한 다음 설정 해제합니다 (다음 테스트에서는를 설정하지 않을 수 있기 때문 error_message
).
if [[ $error_message ]]; then
printf '%s\n' "$error_message"
unset -v error_message
fi
이제 내 질문은 변수를 설정 해제하거나 ''로 설정하는 것이 더 나은 경우입니다.
error_message=''
어느 것이 더 낫습니까? 실제로 차이가 있습니까? 아니면 메시지가 설정되었음을 나타내는 추가 플래그가 있어야합니까?
error_message
다른 것과 비교 하지 않으면 상관 없다고 말하고 싶습니다. 그러나 나는 당신이 원한다고 생각한다[[ $error_message ]]
. 그렇지 않으면 리터럴 문자열 "error_message"가 존재하는지 테스트하고있다.