我正在使用rSpec测试我的应用程序.在我的应用程序控制器中,我有这样一种方法:

def set_current_account
  @current_account ||= Account.find_by_subdomain(request.subdomains.first)
end

是否可以设置请求.我的规范中有子域吗?也许在前街区?我是rSpec的新手,所以任何关于这方面的建议都将非常感谢.

Eef

推荐答案

我想出了解决这个问题的办法.

在我的规格中的前一块中,我简单地添加了:

before(:each) do
  @request.host = "#{mock_subdomain}.example.com"
end

这会设置请求.子域.首先是mock_子域的值.

希望有人觉得这很有用,因为它在网上其他地方没有很好的解释.

Ruby-on-rails相关问答推荐

Ruby线程使用互斥处理并发问题

如何在不触发每次编译的情况下运行`bin/rails测试`?

Rails 5.1.7:Sprockets::Rails::Helper::AssetNotFound

关于关联 has_many 的多级/三重嵌套形式

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

Ruby on Rails 更新触发了 Mailer 函数中的 ArgumentError

这种使用on:的语法在 Ruby on Rails 中意味着什么?

Ruby on Rails/Activerecord 排序自引用查询?

rspec中日期时间结束时的分数是多少?

未初始化的常量 ActionDispatch::Session::EncryptedCookieStore (NameError)

如何在我的 rails 应用程序中测试 ActiveRecord::RecordNotFound?

没有图像时如何在回形针中显示隐藏图像

指定要从 before_filter 中排除的控制器

URL中的Rails点而不是斜杠

Rails,获取模型中的资源路径

警告:引用了顶级常量

Rails Associations - has_many => :through - 但相同的模型

Rails SQL 正则表达式

您如何访问设计控制器?

Rails: Sprockets::Rails::Helper::AssetNotPrecompiled 在开发中