机械师对象为什么不在嵌套块中保存?

时间:2011-09-27 21:50:15

标签: ruby-on-rails ruby rspec machinist

这是我的规范代码无效:

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上失败,即使该用户对象具有id。

如果我删除'describe'blah“do”阻止,那么代码似乎工作正常。我正在使用机械师2.0.0.beta2。

如果我在test.rb配置文件中禁用机械师缓存,它也可以工作:

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

任何人都知道我在这里做错了什么?在规范中嵌套多个描述是不是一种坏习惯吗?

由于

1 个答案:

答案 0 :(得分:1)

这也应该有效:

u = User.make
u.save

我使用Machinist一直遇到这个bug。我不认为嵌套描述是独一无二的,它似乎也出现在其他情况下。真的希望他们能解决这个问题。它会导致难以追踪的看似随机的错误。