我正在使用lvh.me:3000重定向到localhost,并允许我使用以下通配符:
test.lvh.me:3000
在我的application_controller中,我确保url中有一个子域,并查看数据库中的子域。
如果没有子域名,我会重定向到错误页面。
因此,我的rspec控制器测试失败,因为测试没有子域。
如何让get 'index'
调用使用我知道存在于测试数据库中的子域?
答案 0 :(得分:4)
要解决这个问题,请执行以下操作:
# spec/support/spec_helper_methods.rb
def require_subdomain
@subdomain = # however you establish subdomains in you app
controller.expects(:current_subdomain).returns(@subdomain)
@request.host = "#{@subdomain}.test.host"
end
然后在我的规格中:
describe UsersController do
describe "GET /users/new" do
before do
require_subdomain
end
end
end
注意 - 我在这里使用Mocha,因此使用expects()
和returns()
方法。
在我的控制器中,我要求current_subdomain()
并在没有一个