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 end
test "helper class that is being tested is always included in view instance" do test "helper class that is being tested is always included in view instance" do
self.class.helper_class.module_eval do # This ensure is a hidious hack to deal with these tests bleeding
def render_from_helper # methods between eachother
render :partial => 'customer', :collection => @customers begin
self.class.helper_class.module_eval do
def render_from_helper
render :partial => 'customer', :collection => @customers
end
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 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 end
test "no additional helpers should shared across test cases" do test "no additional helpers should shared across test cases" do
@ -147,10 +154,16 @@ module ActionView
end end
test "is able to make methods available to the view" do test "is able to make methods available to the view" do
_helpers.module_eval do # This ensure is a hidious hack to deal with these tests bleeding
def render_from_helper; from_test_case end # 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 end
assert_equal 'Word!', render(:partial => 'test/from_helper')
end end
def from_test_case; 'Word!'; end def from_test_case; 'Word!'; end