我在大多数测试中都有以下代码:
describe 'index'
let(:company) { FactoryGirl.create(:company) }
let(:user) { FactoryGirl.create(:user, company: company) }
before do
sign_in user
visit products_path
end
...
end
Run Code Online (Sandbox Code Playgroud)
但我收到以下警告:
WARNING: let declaration 'user' accessed in a 'before(:all)'
Run Code Online (Sandbox Code Playgroud)
我的问题是,这样做的正确方法是什么?我找不到有关警告本身的更多信息.
谢谢!
编辑:我的目标是使用用户变量,以便我可以将其传递给sign_in,签名用户,然后在另一个测试中使用它(我检查用户的公司属性)
我正在扩展现有的Rails应用程序,我必须为它添加多租户支持.我已经做了一些阅读,看看这个应用程序将如何在Heroku上托管,我想我可以利用Postgres的多模式功能.
我已经读过,当使用多个模式时,备份似乎存在一些性能问题.我觉得这些信息有点过时了.有谁知道这是否仍然如此?
此外,还有其他任何性能问题,或者我应该考虑的警告吗?
我已经考虑过为每个表添加一个字段,这样我就可以使用单个模式,并将该字段引用到租户表中,但考虑到时间窗口,多个模式似乎是最佳解决方案.
每当我尝试assert_equal两个对象时,我总是得到这样的错误:
No visible difference in the User#inspect output.
You should look at the implementation of #== on User or its members.
Run Code Online (Sandbox Code Playgroud)
它也发生在Time和Array上.最小的文档也没有真正说明这一点.
我使用的是Ruby 2.0.0,但我使用的是2.2.0,同样的事情发生了.使用最新的minitest.
另外,我正在运行Ubuntu 14.10.