From 6ea4dd4a65f85f165f71cf1c866dea578dae9e49 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 29 Sep 2007 22:08:41 +0000 Subject: 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 --- .../lib/active_support/core_ext/test/difference.rb | 3 +- activesupport/test/test_test.rb | 67 +++++++++++----------- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/activesupport/lib/active_support/core_ext/test/difference.rb b/activesupport/lib/active_support/core_ext/test/difference.rb index 3d75809c69..2ae4b7d6d1 100644 --- a/activesupport/lib/active_support/core_ext/test/difference.rb +++ b/activesupport/lib/active_support/core_ext/test/difference.rb @@ -1,6 +1,7 @@ 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. # diff --git a/activesupport/test/test_test.rb b/activesupport/test/test_test.rb index 944b98f529..5c8039ea1e 100644 --- a/activesupport/test/test_test.rb +++ b/activesupport/test/test_test.rb @@ -1,7 +1,6 @@ require File.dirname(__FILE__) + '/abstract_unit' class AssertDifferenceTest < Test::Unit::TestCase - def setup @object = Class.new do attr_accessor :num @@ -15,48 +14,52 @@ class AssertDifferenceTest < Test::Unit::TestCase 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 -- cgit v1.2.3