提交 6ea4dd4a 编写于 作者: J Jeremy Kemper

Mark Test::Unit#assert_difference incompatibility with Ruby 2 due to Proc#binding usage

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7682 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 8e067b0b
module Test #:nodoc:
module Unit #:nodoc:
module Assertions #:nodoc:
# FIXME: no Proc#binding in Ruby 2, must change this API
module Assertions #:nodoc:
# Test numeric difference between the return value of an expression as a result of what is evaluated
# in the yielded block.
#
......
require File.dirname(__FILE__) + '/abstract_unit'
class AssertDifferenceTest < Test::Unit::TestCase
def setup
@object = Class.new do
attr_accessor :num
......@@ -15,48 +14,52 @@ def decrement
end.new
@object.num = 0
end
def test_assert_no_difference
assert_no_difference '@object.num' do
# ...
if lambda { }.respond_to?(:binding)
def test_assert_no_difference
assert_no_difference '@object.num' do
# ...
end
end
end
def test_assert_difference
assert_difference '@object.num', +1 do
@object.increment
def test_assert_difference
assert_difference '@object.num', +1 do
@object.increment
end
end
end
def test_assert_difference_with_implicit_difference
assert_difference '@object.num' do
@object.increment
def test_assert_difference_with_implicit_difference
assert_difference '@object.num' do
@object.increment
end
end
end
def test_arbitrary_expression
assert_difference '@object.num + 1', +2 do
@object.increment
@object.increment
def test_arbitrary_expression
assert_difference '@object.num + 1', +2 do
@object.increment
@object.increment
end
end
end
def test_negative_differences
assert_difference '@object.num', -1 do
@object.decrement
def test_negative_differences
assert_difference '@object.num', -1 do
@object.decrement
end
end
end
def test_expression_is_evaluated_in_the_appropriate_scope
local_scope = 'foo'
silence_warnings do
assert_difference('local_scope; @object.num') { @object.increment }
def test_expression_is_evaluated_in_the_appropriate_scope
local_scope = 'foo'
silence_warnings do
assert_difference('local_scope; @object.num') { @object.increment }
end
end
end
def test_array_of_expressions
assert_difference [ '@object.num', '@object.num + 1' ], +1 do
@object.increment
def test_array_of_expressions
assert_difference [ '@object.num', '@object.num + 1' ], +1 do
@object.increment
end
end
else
def default_test; end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册