0
module gameSystem
 Class client
....
...
...

def accounts_by_id(account_id)

      response = query_account(CGI.escape(account_id))
      JSON.parse(response.body)
    end

...
...
...
end

上記のコードでは、accounts_by_id メソッドがクラス Client 内に配置されています。このメソッドは JSON.parse(response.body) を返します。レールでこのメソッドをモックまたはスタブを使用して何かを返す方法を知っている人はいますか?

4

1 に答える 1

0

私は Mocha を使用して、テスト用の関数をモック/スタブしました。それは次のような結果になります

Client.any_instance.expects(:query_account).with("my-account-id").returns([some object to return])

テストでこの関数を呼び出す行の前。

ただし、これは実際のアサーションにはなりません。期待に一致する関数呼び出しがない場合は失敗するだけです。これは私の考えでは理想的ではありません。渡されたアカウント ID が期待どおりでない場合にも失敗します (with必須ではありませんが)。

Mocha のドキュメントを次に示します。これにより、Mocha の使用方法をよりよく理解できます。これは私が過去に必要としていたことを達成したため、この回答を提供しますが、より良い解決策があるかどうかを非常に興味があります.

于 2013-03-27T14:22:51.460 に答える