diff options
Diffstat (limited to 'test/minitest/test_mini_spec.rb')
-rw-r--r-- | test/minitest/test_mini_spec.rb | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/test/minitest/test_mini_spec.rb b/test/minitest/test_mini_spec.rb index f80310c4d1..f2e30c66d0 100644 --- a/test/minitest/test_mini_spec.rb +++ b/test/minitest/test_mini_spec.rb @@ -35,18 +35,22 @@ describe MiniTest::Spec do must_be_kind_of must_be_nil must_be_same_as + must_be_silent must_be_within_delta must_be_within_epsilon must_equal must_include must_match + must_output must_raise must_respond_to must_send must_throw) + bad = %w[not raise throw send output be_silent] + expected_wonts = expected_musts.map { |m| m.sub(/^must/, 'wont') } - expected_wonts.reject! { |m| m =~ /wont_(not|raise|throw|send)/ } + expected_wonts.reject! { |m| m =~ /wont_#{Regexp.union(*bad)}/ } musts.must_equal expected_musts wonts.must_equal expected_wonts @@ -158,6 +162,32 @@ describe MiniTest::Spec do proc { 1.wont_be_same_as 1 }.must_raise MiniTest::Assertion end + it "needs to verify output in stdout" do + proc { print "blah" }.must_output("blah").must_equal true + + proc { + proc { print "xxx" }.must_output("blah") + }.must_raise MiniTest::Assertion + end + + it "needs to verify output in stderr" do + proc { $stderr.print "blah" }.must_output(nil, "blah").must_equal true + + proc { + proc { $stderr.print "xxx" }.must_output(nil, "blah") + }.must_raise MiniTest::Assertion + end + + it "needs to ensure silence" do + @assertion_count = 5 + + proc { }.must_be_silent.must_equal true + + proc { + proc { print "xxx" }.must_be_silent + }.must_raise MiniTest::Assertion + end + it "needs to be sensible about must_include order" do @assertion_count = 6 [1, 2, 3].must_include(2).must_equal true @@ -170,3 +200,26 @@ describe MiniTest::Spec do proc { [1, 2, 3].wont_include 2 }.must_raise MiniTest::Assertion end end + +class TestMeta < MiniTest::Unit::TestCase + def test_structure + x = y = nil + x = describe "top-level thingy" do + before {} + after {} + + it "top-level-it" do end + + y = describe "inner thingy" do + before {} + it "inner-it" do end + end + end + + top_methods = %w(setup teardown test_0001_top_level_it) + inner_methods = %w(setup test_0001_inner_it) + + assert_equal top_methods, x.instance_methods(false).sort.map {|o| o.to_s } + assert_equal inner_methods, y.instance_methods(false).sort.map {|o| o.to_s } + end +end |