From 2b6ad48ea3c80e693b3c92f90432c790c8ee1510 Mon Sep 17 00:00:00 2001 From: Marcel Molina Date: Tue, 8 May 2007 06:27:10 +0000 Subject: Evaluate expression for assert_difference in the scope of the block git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6701 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/lib/active_support/core_ext/test/difference.rb | 2 +- activesupport/test/test_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/activesupport/lib/active_support/core_ext/test/difference.rb b/activesupport/lib/active_support/core_ext/test/difference.rb index 7b22b32d26..17cac8919d 100644 --- a/activesupport/lib/active_support/core_ext/test/difference.rb +++ b/activesupport/lib/active_support/core_ext/test/difference.rb @@ -20,7 +20,7 @@ module Test #:nodoc: # post :delete, :id => ... # end def assert_difference(expression, difference = 1, &block) - expression_evaluation = lambda { eval(expression) } + expression_evaluation = lambda { eval(expression, block.binding) } original_value = expression_evaluation.call yield assert_equal original_value + difference, expression_evaluation.call diff --git a/activesupport/test/test_test.rb b/activesupport/test/test_test.rb index d8a02b5497..e29534ccaf 100644 --- a/activesupport/test/test_test.rb +++ b/activesupport/test/test_test.rb @@ -46,4 +46,11 @@ class AssertDifferenceTest < Test::Unit::TestCase @object.decrement end end + + def test_expression_is_evaluated_in_the_appropriate_scope + local_scope = 'foo' + assert_difference 'local_scope; @object.num' do + @object.increment + end + end end -- cgit v1.2.3