問題タブ [ruby-mocha]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
2826 参照

ruby-on-rails - 「instance.extend(DecoratorModule)」に含まれているメソッドのモック/スタブ

モデルインスタンスに含まれるデコレータモジュールを使用します(「extends」メソッドを使用)。だから例えば:

それから私はテストで次のことをしたいと思います(モカを使用して):

これはどういうわけか可能ですか、それともこの機能を取得する他の方法を考えていますか?

0 投票する
2 に答える
2324 参照

ruby-on-rails - Ruby on Rails:サードパーティAPIへの失敗した呼び出しをテストするための最良の方法

現在、アプリケーションの一部としてサードパーティのWebサービスに電話をかけています。これを行うためにRestClientgemを使用しています。同じことを行うために利用できるツールはたくさんあるので、それは問題ではありません。

私が興味を持っているのは、十分に優れたテストを行うことです。これは、サードパーティのWebサービスが何らかの理由で利用できない場合に、アプリケーションがどのように応答するかをシミュレートできます。ネットワークの遅延/複雑さのためにレート制限またはタイムアウトを超えたとしても、HTTPステータスコードのようなものを取得して、そのイベントでアプリケーションが何をするかをテストできるようにしたいだけです。

Test :: Unitでこれを行うための最良の方法は何ですか?現在、サードパーティサービスへの呼び出しは、私のコントローラの1つにカプセル化されています。リモートサービスのさまざまなエンドポイント用のいくつかのラッパーメソッドを備えた単純なモジュールがあります。サービスが利用できる場合と利用できない場合に、アプリケーションが正しいことを実行することを確認したいだけです。

Test :: Unitの隣に追加のフレームワークを使用して、これを実行するための正しい方法を「スタブ」できますか?明らかに、私はネットワークタイムアウトを強制することはできず、テストのためだけにIPtablesのようなものでハッキングを開始することは時間の価値がありません。FacebookやTwitterなどをWebアプリケーションに統合することが最近非常に人気があるため、この問題は何百万回も解決されたと確信しています。堅牢で制御された形式でこれらのAPIに到達するときに、失敗をどのようにテストしますか?

0 投票する
1 に答える
3298 参照

ruby-on-rails - 元の実装を呼び出しながらメソッド呼び出しの期待値を設定する

Mocha でメソッド呼び出しの期待値を設定すると、元の実装が呼び出されないように見えます。

これは、元のメソッドを rspec で呼び出すことをカバーしているようです。

モカでこれを行う方法はありますか?または、これがサポートされない理由を誰かが知っていますか?

0 投票する
2 に答える
1203 参照

ruby - 「each」のようなメソッドをどのようにモックしますか?

CSV.foreachを使用してcsvファイルを読み込み、処理を行うメソッドをテストしようとしています。これは次のようになります。

CSV.foreachは、入力としてファイルパスを受け取り、ファイルを読み取り、コンマ区切り値を解析して、ファイル内の各行の配列を返します。各配列は、処理のためにコードブロックに順番に渡されます。

Mochaを使用してメソッドをスタブ化し、ファイルI /Omumbo-jumboなしでテストからメソッドforeachへの入力を制御できるようにします。process_csv

したがって、テストは次のようになります

test_inputアレイをモカが使用できるものに変える方法が必要です。ある種のprocまたはlambdaを使用する必要があると思いますが、proc、blocks、およびlambdaの世界は少し気が遠くなります。

0 投票する
1 に答える
275 参照

ruby - ユニットテスト以外でモカを使用するにはどうすればよいですか?

ユニットテストの外でmochaを使用して、Net::HTTPResponseオブジェクトをモックしようとしています。簡単な例を次に示します。

このエラーが発生します:

0 投票する
2 に答える
269 参照

ruby - スタブなしでメソッド呼び出しをアサートしますか?

特定のメソッドが呼び出されたことを表明したいのですが、メソッドをモック/スタブしたくありません。そのコードもテストに含めたいと思います。

たとえば、Rubyでは次のようになります。

誰かが提案(またはそれについて行くためのより良い方法)を持っていますか?私の実際のコードはかなり複雑なので、例の単純さを考慮に入れないでください。

0 投票する
0 に答える
548 参照

ruby-on-rails - RSpecとMochaでActsAsTaggableOnをモックする方法は?

RSpec と Mocha を使用して ActsAsTaggableOn::tag をモックするにはどうすればよいですか? Railsのテストは初めてなので、明らかな何かが欠けている可能性があります...

私は試した :

/spec/controllers/books_controller.rb

/app/controllers/books_controller

私は得る:

0 投票する
1 に答える
7793 参照

ruby-on-rails - モカを使用して、多くのパラメーターでスタブする方法はありますか?

私がこのクラスを持っているとしましょう

以下を使用して、バー全体のメソッドをスタブできます。

ただし、bar メソッドの param1 が true の場合にのみスタブしたい場合は、方法が見つかりませんでした。

with と has_entry も調べましたが、単一のパラメーターにのみ適用されるようです。

このような機能を期待していました。

ありがとう

................................................................... . 以下を編集 .................................................................

ありがとう、ナッシュ

rspecに慣れていないので、any_instanceで単体テストしてみたところうまくいきそうです

0 投票する
3 に答える
8321 参照

ruby-on-rails - Mocha: 異なるパラメーターを持つ複数の呼び出しがある場合にメソッドの期待値を追加する方法

テストする Rails コントローラー アクションがあります。そのアクションでは、メソッド User.can? 異なるパラメータで数回呼び出されます。そのテスト ケースの 1 つで、User.can?('withdraw') が呼び出されることを確認したいと思います。しかし、User.can の呼び出しは気にしませんか? 他のパラメータで。

テストで以下を試しました:

しかし、User.can?('deposit') の予期しない呼び出しを示すメッセージが表示され、テストは失敗しました。パラメータ「deposit」を使用して別の期待値を追加すると、テストに合格しました。しかし、「withdraw」パラメーターを使用した呼び出しに集中できる方法があるかどうか疑問に思っています (他の呼び出しはこのテスト ケースとは無関係であるため)。