Почему этот текст RSpec сломался после изменения моей базы данных Rails с SQLite на MySQL? - PullRequest
1 голос
/ 15 марта 2012

Второй пример использовался для передачи в 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.Если вы не можете ответить на мой вопрос, но также знаете лучший способ сделать это, то я также буду признателен за рекомендацию.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...