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