我仍然熟悉 RSpec,并且在为我的多租户应用程序设置测试时遇到了一些问题。
该应用程序适用于:
client1.example.com
client2.example.com
ETC....
在我的 RSpec 中,我正在执行以下操作:
let(:tenant) { FactoryGirl.create(:tenant, subdomain: "client1") }
let(:root_path) { "http://client1.example.dev:3000" }
before {
tenant.save
visit root_path
}
describe "header" do
it "should have the right title" do
page.should have_selector('title', :text => tenant.name)
end
end
我在这里做了一些感觉不对的事情,但不确定最好的方法是什么。
我正在对 root_path 进行硬编码。做类似的事情
visit '/'
是行不通的,因为测试不知道正确的子域是什么。这个可以吗?我不知道为什么,但我必须在每次测试之前执行tenant.save,以便测试能够真正根据子域找到租户。如果我删除tenant.save,我会得到一个
Couldn't find Tenant with subdomain = client1
错误。我以为 FactoryGirl.create 实际上保存到数据库中?
谢谢您的帮助!