2 Stimmen

Wie zu aktivieren Seite Caching in einem funktionalen Test in Schienen?

Ist es möglich, die Zwischenspeicherung von Seiten für einen Funktionstest zu aktivieren? Das Folgende hat nicht funktioniert:

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

vielen Dank im Voraus

Deb

3voto

Charles Maresh Punkte 3243

Meine derzeitige Abhilfe besteht darin, Folgendes zu aktivieren perform_caching und laden Sie den Controller neu:

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

In der neuesten Version von Rails 2 hat das Problem, das Sie haben, mit den Klassenmethoden zu tun caches_action y caches_page . Beide erstellen einen Around-Filter, um die Zwischenspeicherung durchzuführen, aber nur, wenn perform_caching aktiviert ist.

Durch die Änderung der perform_caching zur Laufzeit nicht die erwartete Umgebung von Filtern wiederherstellt. Das obige Beispiel ist eine Möglichkeit, Ihren Controller zu zwingen, neu ausgewertet werden.

0voto

deb Punkte 11656

Ich konnte nicht herausfinden, warum das nicht funktionierte, also habe ich das Caching direkt auf environments/test.rb :

config.action_controller.perform_caching             = true

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X