如何在 Rails 中存根或模拟 request.subdomains 方法?
我正在尝试在我的 Rails 应用程序中编写一些功能测试,并且在 application_controller.rb 中我有这样的:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
运行测试时, request.subdomains
不包含我正在寻找的有效子域并且使得无法运行任何功能测试。
是否可以存根 current_account 方法或模拟 request.subdomains 对象?
I am trying to write some functional tests in my rails app, and in the application_controller.rb I have this:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
When running tests, request.subdomains
doesn't contain the valid subdomains I'm looking for and makes it impossible to run any functional tests.
Is it possible to stub the current_account
method or mock the request.subdomains
object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在您的功能测试中,您应该能够执行以下操作(使用摩卡):
In your functional test you should be able to do (using mocha):
对我(以及Rails 2.3.4)来说,正确的说法是
因为我无法直接访问@request。
To me (and with Rails 2.3.4), the correct statement is
since I cannot access to @request directly.
你可以访问 ruby 中的任何内容:)
you can access anything in ruby :)