1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Safely cleans up a test to avoid relying on a particular test order

This commit is contained in:
wycats 2010-03-04 15:07:26 -08:00
parent 70916f6a9c
commit 7c785592ec

View file

@ -89,16 +89,23 @@ module ActionView
end
test "helper class that is being tested is always included in view instance" do
self.class.helper_class.module_eval do
def render_from_helper
render :partial => 'customer', :collection => @customers
# This ensure is a hidious hack to deal with these tests bleeding
# methods between eachother
begin
self.class.helper_class.module_eval do
def render_from_helper
render :partial => 'customer', :collection => @customers
end
end
TestController.stubs(:controller_path).returns('test')
@customers = [stub(:name => 'Eloy'), stub(:name => 'Manfred')]
assert_match /Hello: EloyHello: Manfred/, render(:partial => 'test/from_helper')
ensure
self.class.helper_class.remove_method :render_from_helper
end
TestController.stubs(:controller_path).returns('test')
@customers = [stub(:name => 'Eloy'), stub(:name => 'Manfred')]
assert_match /Hello: EloyHello: Manfred/, render(:partial => 'test/from_helper')
end
test "no additional helpers should shared across test cases" do
@ -147,10 +154,16 @@ module ActionView
end
test "is able to make methods available to the view" do
_helpers.module_eval do
def render_from_helper; from_test_case end
# This ensure is a hidious hack to deal with these tests bleeding
# methods between eachother
begin
_helpers.module_eval do
def render_from_helper; from_test_case end
end
assert_equal 'Word!', render(:partial => 'test/from_helper')
ensure
_helpers.remove_method :render_from_helper
end
assert_equal 'Word!', render(:partial => 'test/from_helper')
end
def from_test_case; 'Word!'; end