2

機能テストのためにページキャッシュを有効にすることはできますか? 以下は機能しませんでした:

class ArticlesControllerTest < ActionController::TestCase
 def setup
    ActionController::Base.public_class_method :page_cache_path
    ActionController::Base.perform_caching = true
 end
end

前もって感謝します

デブ

4

2 に答える 2

3

私の現在の回避策は、コントローラーを有効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実行時に変更しても、期待される周囲のフィルターは再現されません。上記の例は、コントローラーを強制的に再評価する1つの方法です。

于 2010-12-08T22:32:43.273 に答える
0

なぜこれが機能しないのか理解できなかったので、キャッシュを直接有効にすることになりましたenvironments/test.rb

config.action_controller.perform_caching             = true
于 2010-05-18T17:05:16.243 に答える