Второй пример использовался для передачи в SQLite и теперь не работает под MySQL.
require 'spec_helper'
shared_examples_for "anything that caches its model" do
factory = self.described_class.table_name.singularize.to_sym
klass = self.described_class
it "maintains a cache key based on the current #{self.described_class.name.downcase} count" do
klass.cache_key.should == "#{self.described_class.table_name}-0-"
end
context "when there are #{self.described_class.table_name} in the database" do
it "includes the last updated #{self.described_class.name.downcase} in the cache key" do
e1 = Factory factory
e2 = Factory factory
klass.cache_key.should == "#{self.described_class.table_name}-#{self.described_class.count}-#{e2.cache_key}"
end
end
end
И ошибка, которую я получаю:
Failure/Error: klass.cache_key.should == "#{self.described_class.table_name}-{self.described_class.count}-#{e2.cache_key}"
expected: "deliveries-2-deliveries/2-20120315152232"
got: "deliveries-2-deliveries/1-20120315152232" (using ==)
Я думаю, что СУХОЕ преимущество использования общего примера таким способом фактически сводится на нет странной читабельностью этой спецификации.Я просто пытаюсь создать ключ кеша, который работает для всего класса, как работают ключи кеша экземпляров Rails.Если вы не можете ответить на мой вопрос, но также знаете лучший способ сделать это, то я также буду признателен за рекомендацию.
Спасибо!