test/test_nanotest.rb in nanotest-0.9.2 vs test/test_nanotest.rb in nanotest-0.9.3

- old
+ new

@@ -1,53 +1,80 @@ +require 'minitest/autorun' require 'test/test_helper' -class TestNanoTest < MiniTest::Unit::TestCase +module Nanotest + class << self + def failures() @@failures end + def dots() @@dots end + end + # don't autorun + def at_exit() end +end +require 'nanotest' + +# fixture class for nanotest mixin +class Foo + include Nanotest +end + +class TestNanotest < MiniTest::Unit::TestCase + def self.test(name, &block) + define_method("test_#{name.gsub(/\s/,'_')}", &block) + end + def teardown - NanoTest::FAILURES.clear + Nanotest::dots.clear + Nanotest::failures.clear end test "api" do - class Foo; include NanoTest end assert_respond_to Foo.new, :assert - assert_respond_to NanoTest, :assert + assert_respond_to Nanotest, :assert end test "assertion passes" do - out, err = capture_io do - NanoTest.assert { true } - end - assert_equal '.', out - assert_empty NanoTest::FAILURES + Nanotest.assert { true } + assert_equal '.', Nanotest::dots.last + assert_empty Nanotest::failures end test "assertion fails (false)" do - out, err = capture_io do - NanoTest.assert { false } - end - assert_equal 'F', out - refute_empty NanoTest::FAILURES + Nanotest.assert { false } + assert_equal 'F', Nanotest::dots.last + refute_empty Nanotest::failures end test "assertion fails (nil)" do - out, err = capture_io do - NanoTest.assert { nil } - end - assert_equal 'F', out - refute_empty NanoTest::FAILURES + Nanotest.assert { nil } + assert_equal 'F', Nanotest::dots.last + refute_empty Nanotest::failures end test "failure message" do - capture_io do - @line = __LINE__; NanoTest.assert { false } - end - assert_equal 1, NanoTest::FAILURES.size - assert_includes NanoTest::FAILURES, "(%s:%0.3d) assertion failed" % [__FILE__, @line] + @line = __LINE__; Nanotest.assert { false } + assert_equal 1, Nanotest::failures.size + assert_includes Nanotest::failures, "(%s:%0.3d) assertion failed" % [__FILE__, @line] end test "custom failure message, file, line" do - capture_io do - NanoTest.assert('foo','bar',2) { false } - end - assert_includes NanoTest::FAILURES, "(bar:002) foo" + Nanotest.assert('foo','bar',2) { false } + assert_includes Nanotest::failures, "(bar:002) foo" end + + test "displays results" do + Nanotest.assert { true } + Nanotest.assert { false }; line1 = __LINE__ + Nanotest.assert { false }; line2 = __LINE__ + expected = <<-OUT.gsub(/^\s*/,'').strip % [__FILE__, line1, __FILE__, line2] + .FF + (%s:%0.3d) assertion failed + (%s:%0.3d) assertion failed + OUT + assert_equal expected, Nanotest.results + end + + test "displays results with no assertions" do + assert_empty Nanotest.results.strip + end end +