是否可以为功能测试打开页面缓存?以下没有奏效:
class ArticlesControllerTest < ActionController::TestCase
def setup
ActionController::Base.public_class_method :page_cache_path
ActionController::Base.perform_caching = true
end
end
提前致谢
德布
是否可以为功能测试打开页面缓存?以下没有奏效:
class ArticlesControllerTest < ActionController::TestCase
def setup
ActionController::Base.public_class_method :page_cache_path
ActionController::Base.perform_caching = true
end
end
提前致谢
德布
我目前的解决方法是启用perform_caching
然后重新加载控制器:
class ProjectsCachingTest < ActionController::IntegrationTest
def setup
# force the controller to be reloaded when caching is enabled
ActionController::Base.perform_caching = true
load "projects_controller.rb"
end
def teardown
# undo the actions above
ActionController::Base.perform_caching = false
load "projects_controller.rb"
end
end
在最新版本的 Rails 2 中,您遇到的问题与类方法caches_action
和caches_page
. 它们都创建了一个环绕过滤器来进行缓存,但仅在perform_caching
启用时才可用。
因此,perform_caching
在运行时修改不会重新创建预期的过滤器。上面的示例是强制重新评估控制器的一种方法。
我不知道为什么这不起作用,所以我最终直接启用了缓存environments/test.rb
:
config.action_controller.perform_caching = true