Почему объекты машиниста не сохраняются внутри вложенных блоков?

Это мой код спецификации, который не работает:

require 'spec_helper'

describe User do
  describe "blah" do
    it "should save itself" do
      user = User.make!
      u = User.find user.id
      user = User.make!
      u = User.find user.id
    end
  end
end

Спецификация не работает на втором User.find, даже если этот пользовательский объект имеет идентификатор.

Если я удаляю блок 'description "blah" do', то, похоже, код работает нормально. Я использую машиниста 2.0.0.beta2.

Если я отключаю кэширование машиниста в моем конфигурационном файле test.rb, это также работает:

Machinist.configure do |config|
  config.cache_objects = false
end

Кто-нибудь знает, что я здесь делаю не так? Это плохая практика, чтобы вкладывать несколько описаний в спецификацию?

Спасибо

1 ответ

Это также должно работать:

u = User.make
u.save

Я постоянно сталкиваюсь с этой ошибкой, используя Machinist. Я не думаю, что это является исключительным для вложенных описаний, оно, похоже, всплывает и в других ситуациях. Очень хотелось бы, чтобы они это исправили. Это вызывает кажущиеся случайными ошибки, которые трудно отследить.

Другие вопросы по тегам