summaryrefslogtreecommitdiff
path: root/lib/minitest
diff options
context:
space:
mode:
authorryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-09-01 08:40:53 +0000
committerryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-09-01 08:40:53 +0000
commitee9e8f82d4baccd90e82d8a0acd75001aa495b0f (patch)
tree9880659dfdca88b8e2d247d01fbd64a01cab9573 /lib/minitest
parent09fb7189ec8b886b356618274b6b7b5bcc4aebe8 (diff)
Imported minitest 1.7.1 r5835
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/minitest')
-rw-r--r--lib/minitest/spec.rb15
-rw-r--r--lib/minitest/unit.rb41
2 files changed, 50 insertions, 6 deletions
diff --git a/lib/minitest/spec.rb b/lib/minitest/spec.rb
index 59b4c6536c..43f1c6ca09 100644
--- a/lib/minitest/spec.rb
+++ b/lib/minitest/spec.rb
@@ -55,7 +55,7 @@ Object.infect_with_assertions(:must, :wont,
/_in_/ => '_be_within_',
/_operator/ => '_be',
/_includes/ => '_include',
- /(must|wont)_(.*_of|nil|empty)/ => '\1_be_\2',
+ /(must|wont)_(.*_of|nil|silent|empty)/ => '\1_be_\2',
/must_raises/ => 'must_raise')
class Object
@@ -84,6 +84,7 @@ module Kernel
stack.push cls
cls.class_eval(&block)
stack.pop
+ cls
end
private :describe
end
@@ -203,6 +204,10 @@ class MiniTest::Spec < MiniTest::Unit::TestCase
# See MiniTest::Assertions#assert_same
##
+ # :method: must_be_silent
+ # See MiniTest::Assertions#assert_silent
+
+ ##
# :method: must_be_within_delta
# See MiniTest::Assertions#assert_in_delta
@@ -223,6 +228,10 @@ class MiniTest::Spec < MiniTest::Unit::TestCase
# See MiniTest::Assertions#assert_match
##
+ # :method: must_output
+ # See MiniTest::Assertions#assert_output
+
+ ##
# :method: must_raise
# See MiniTest::Assertions#assert_raises
@@ -271,6 +280,10 @@ class MiniTest::Spec < MiniTest::Unit::TestCase
# See MiniTest::Assertions#refute_in_delta
##
+ # :method: wont_be_within_delta
+ # See MiniTest::Assertions#refute_in_delta
+
+ ##
# :method: wont_be_within_epsilon
# See MiniTest::Assertions#refute_in_epsilon
diff --git a/lib/minitest/unit.rb b/lib/minitest/unit.rb
index 3e038c818f..c45dec3fc4 100644
--- a/lib/minitest/unit.rb
+++ b/lib/minitest/unit.rb
@@ -195,6 +195,24 @@ module MiniTest
end
##
+ # Fails if stdout or stderr do not output the expected results.
+ # Pass in nil if you don't care about that streams output. Pass in
+ # "" if you require it to be silent.
+ #
+ # See also: #assert_silent
+
+ def assert_output stdout = nil, stderr = nil
+ out, err = capture_io do
+ yield
+ end
+
+ x = assert_equal stdout, out, "In stdout" if stdout
+ y = assert_equal stderr, err, "In stderr" if stderr
+
+ (!stdout || x) && (!stderr || y)
+ end
+
+ ##
# Fails unless the block raises one of +exp+
def assert_raises *exp
@@ -252,6 +270,17 @@ module MiniTest
end
##
+ # Fails if the block outputs anything to stderr or stdout.
+ #
+ # See also: #assert_output
+
+ def assert_silent
+ assert_output "", "" do
+ yield
+ end
+ end
+
+ ##
# Fails unless the block throws +sym+
def assert_throws sym, msg = nil
@@ -474,7 +503,7 @@ module MiniTest
end
class Unit
- VERSION = "1.6.0" # :nodoc:
+ VERSION = "1.7.1" # :nodoc:
attr_accessor :report, :failures, :errors, :skips # :nodoc:
attr_accessor :test_count, :assertion_count # :nodoc:
@@ -588,6 +617,12 @@ module MiniTest
srand seed
+ help = ["--seed", seed]
+ help.push "--verbose" if @verbose
+ help.push("--name", options[:filter].inspect) if options[:filter]
+
+ @@out.puts "Test run options: #{help.join(" ")}"
+ @@out.puts
@@out.puts "Loaded suite #{$0.sub(/\.rb$/, '')}\nStarted"
start = Time.now
@@ -606,10 +641,6 @@ module MiniTest
@@out.puts
- help = ["--seed", seed]
- help.push "--verbose" if @verbose
- help.push("--name", options[:filter].inspect) if options[:filter]
-
@@out.puts "Test run options: #{help.join(" ")}"
return failures + errors if @test_count > 0 # or return nil...