3

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

4

3 に答える 3

5

機能テストでは、(モカを使用して)実行できるはずです。

@request.expects(:subdomains).returns(['www'])
于 2009-06-17T08:25:33.207 に答える
1

私にとって (そして Rails 2.3.4 の場合)、正しいステートメントは次のとおりです。

@controller.request.expects(:subdomains).returns(['www'])

@request に直接アクセスできないので。

于 2010-01-25T16:57:55.307 に答える
1
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))

Rubyで何でもアクセスできます:)

于 2010-10-19T18:00:57.843 に答える