diff --git a/test/helper.rb b/test/helper.rb index b9b7e4cd..2e67da0e 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -70,4 +70,14 @@ class Test::Unit::TestCase ensure $stdout = $old_stdout end + + def capture_stderr + $old_stderr = $stderr + $stderr = StringIO.new + yield + $stderr.rewind + return $stderr.string + ensure + $stderr = $old_stderr + end end diff --git a/test/test_convertible.rb b/test/test_convertible.rb index c7ad9b9a..28f99952 100644 --- a/test/test_convertible.rb +++ b/test/test_convertible.rb @@ -21,7 +21,7 @@ class TestConvertible < Test::Unit::TestCase should "not parse if there is syntax error in front-matter" do name = 'broken_front_matter2.erb' - out = capture_stdout do + out = capture_stderr do ret = @convertible.read_yaml(@base, name) assert_equal({}, ret) end @@ -30,7 +30,7 @@ class TestConvertible < Test::Unit::TestCase end should "not allow ruby objects in yaml" do - out = capture_stdout do + out = capture_stderr do @convertible.read_yaml(@base, 'exploit_front_matter.erb') end assert_no_match /undefined class\/module DoesNotExist/, out @@ -38,7 +38,7 @@ class TestConvertible < Test::Unit::TestCase should "not parse if there is encoding error in file" do name = 'broken_front_matter3.erb' - out = capture_stdout do + out = capture_stderr do ret = @convertible.read_yaml(@base, name, :encoding => 'utf-8') assert_equal({}, ret) end