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

发布于 2024-12-07 00:29:08 字数 556 浏览 1 评论 0原文

这是我的规范代码不起作用:

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。

如果我删除“描述“blah”do”块,那么代码似乎可以正常工作。我正在使用机械师 2.0.0.beta2。

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

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

有人知道我在这里做错了什么吗?在规范中嵌套多个描述是一种不好的做法吗?

谢谢

This is my spec code that isn't working:

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

The spec fails on the 2nd User.find even though that user object has an id.

If I remove the 'describe "blah" do' block then the code seems to work fine. I'm using machinist 2.0.0.beta2.

If I disable machinist caching in my test.rb config file it also works:

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

Anyone know what I'm doing wrong here? Is it a bad practice to nest multiple describes in a spec?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2024-12-14 00:29:08

这也应该有效:

u = User.make
u.save

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

This should also work:

u = User.make
u.save

I run into this bug all the time using Machinist. I don't think it's exclusive to nesting describes, it seems pops up in other situations as well. Really wish they would fix this. It causes seemingly-random errors that are hard to track down.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文