86 lines
1.7 KiB
Ruby
86 lines
1.7 KiB
Ruby
|
|
require "selftest_utils"
|
|
|
|
class CMDTEST_assert < Cmdtest::Testcase
|
|
|
|
include SelftestUtils
|
|
|
|
#----------------------------------------
|
|
# a positive assert is "quiet"
|
|
|
|
def test_assert_CORRECT
|
|
create_CMDTEST_foo [
|
|
" cmd 'true.rb' do",
|
|
" assert true",
|
|
" end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
]
|
|
end
|
|
end
|
|
|
|
#----------------------------------------
|
|
# a negative assert is prints an error
|
|
|
|
def test_assert_INCORRECT
|
|
create_CMDTEST_foo [
|
|
" cmd 'true.rb' do",
|
|
" assert false",
|
|
" end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: assertion failed",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
#----------------------------------------
|
|
# an assert can have an extra message parameter,
|
|
# that is printed if the assert is negative
|
|
|
|
def test_assert_INCORRECT_WITH_MSG
|
|
create_CMDTEST_foo [
|
|
" cmd 'true.rb' do",
|
|
" assert false, 'got false'",
|
|
" end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: assertion: got false",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
#----------------------------------------
|
|
# two negative asserts are both reported
|
|
|
|
def test_assert_INCORRECT_WITH_MSG_2
|
|
create_CMDTEST_foo [
|
|
" cmd 'true.rb' do",
|
|
" assert false, 'got false 1'",
|
|
" assert false, 'got false 2'",
|
|
" end",
|
|
]
|
|
|
|
cmd_cmdtest do
|
|
stdout_equal [
|
|
"### true.rb",
|
|
"--- ERROR: assertion: got false 1",
|
|
"--- ERROR: assertion: got false 2",
|
|
]
|
|
exit_nonzero
|
|
end
|
|
end
|
|
|
|
end
|