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
+