Skip to content

Commit c014c52

Browse files
committed
Use the capture_io method from minitest
1 parent 2df34fe commit c014c52

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

test/test_helper.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,18 @@ def now
161161
self.fake_time = nil
162162
end
163163

164-
def capture_stderr
165-
# The output stream must be an IO-like object. In this case we capture it in
166-
# an in-memory IO object so we can return the string value. You can assign any
167-
# IO object here.
168-
previous_stderr, $stderr = $stderr, StringIO.new
164+
# From minitest/unit
165+
def capture_io
166+
require 'stringio'
167+
168+
orig_stdout, orig_stderr = $stdout, $stderr
169+
captured_stdout, captured_stderr = StringIO.new, StringIO.new
170+
$stdout, $stderr = captured_stdout, captured_stderr
171+
169172
yield
170-
$stderr.string
173+
174+
return captured_stdout.string, captured_stderr.string
171175
ensure
172-
# Restore the previous value of stderr (typically equal to STDERR).
173-
$stderr = previous_stderr
176+
$stdout = orig_stdout
177+
$stderr = orig_stderr
174178
end

test/worker_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -642,14 +642,14 @@ def self.perform( run_time, rescue_time=nil )
642642
end
643643

644644
test "displays warning when not using term_child" do
645-
stderr = capture_stderr { @worker.work(0) }
645+
stdout, stderr = capture_io { @worker.work(0) }
646646

647647
assert stderr.match(/^WARNING:/)
648648
end
649649

650650
test "it does not display warning when using term_child" do
651651
@worker.term_child = "1"
652-
stderr = capture_stderr { @worker.work(0) }
652+
stdout, stderr = capture_io { @worker.work(0) }
653653

654654
assert !stderr.match(/^WARNING:/)
655655
end

0 commit comments

Comments
 (0)