如何在Rails中存根或模拟request.subdomains方法?

eri*_*rik 3 integration-testing ruby-on-rails mocking stubbing

我试图在我的rails应用程序中编写一些功能测试,在application_controller.rb中我有:

before_filter :current_account
def current_account
  @current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
Run Code Online (Sandbox Code Playgroud)

运行测试时,request.subdomains不包含我正在寻找的有效子域,并且无法运行任何功能测试.

是可以存根current_account方法还是模拟request.subdomains对象?

Sha*_*ell 5

在你的功能测试中你应该能够做到(使用mocha):

@request.expects(:subdomains).returns(['www'])
Run Code Online (Sandbox Code Playgroud)