私はまだRSpecに慣れていて、マルチテナントアプリのテストを設定するときに問題が発生しています。
アプリは次の場所で動作します:
client1.example.com
client2.example.com
等....
私の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が実際にデータベースに保存されていると思いましたか?
助けてくれてありがとう!