問題タブ [stubbing]

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 投票する
1 に答える
1484 参照

ruby-on-rails - Railsのスーパークラスでbefore_filterをスタブするにはどうすればよいですか?

RSpecのモックとスタブにRRを使用していますが、いくつかのインスタンス変数を設定するコントローラーのスーパークラスからメソッドをスタブしたいという状況に遭遇しました。メソッド呼び出しをスタブする方法を理解できます。デバッグすると、スタブされたブロックが呼び出されていることがわかりますが、ブロック内のインスタンス変数を取得して、テストしているクラスに伝播させることはできません。

分解するだけです:

これが基本的な設定なので、コントローラーBのテストでは、bogglesnapメソッドをAからスタブして、@instancevarを必要なものに設定したいと思います。どうすればいいのかわからない。

RRのinstance_ofスタブを試し、コントローラー定義をスタブアウトしました。

しかし、これらはどちらも機能していないようです、まあ、機能しません:)

そのメソッド呼び出しをスタブしてインスタンス変数を設定する方法について、誰かがポインターを持っていますか?私はそれがブロックが実行されているコンテキストに関係していると思いますが、誰かが以前にこのようなものに遭遇したことを望んでいます。

ありがとう

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

java - Mockito:すべてのパラメーターをモックせずにメソッドを簡単にスタブ化する方法

スタブしたいメソッドがありますが、パラメーターがたくさんあります。すべてのパラメーターのモックを回避しながら、メソッドをスタブ化するにはどうすればよいですか。

元:

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

ruby - モカとネストされたオブジェクト

これがばかげた質問だとすみません、私はあざけるのは初めてです。

私はモカを使って次のようなことをすることができます:

ネストされたオブジェクトをモックするにはどうすればよいですか?

ある人物に属する製品があり、その人物の名を取得したいとします。

私のアプリでは、次のようにすることができます。

モックを使用して同じ結果を得るにはどうすればよいですか?

0 投票する
5 に答える
11351 参照

.net - Rhino Mocksのスタブとモックはインターフェースにのみ適していますか?

Rhino Mocksのスタブとモックは、具象クラスではなく、インターフェースにのみ適しているというのは正しいですか?私はこのコードを機能させるためにかなりの時間を費やしました。スタブされたpubSubClientが常にクラスからSendメソッドを呼び出すとは思っていませんでした。そのメソッドにはいくつかの依存関係があり、例外をスローします。

ただし、インターフェイスを抽出し、IPubSubClientで同じテストを実行すると、期待どおりに機能しているようです。

Rhinoでモック/スタブしたいすべてのクラスのインターフェースを抽出する必要があるということですか?または、技術的または概念的に何かが欠けていますか?

更新:わかりました。欠落している部分がわかったようです 。RhinoMocksは非仮想メソッドの呼び出しをインターセプトできません。したがって、インターフェイスを使用するか、具象クラスのすべてのメソッドを仮想化する必要があると思います。別のオプションがある場合は訂正してください。

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

ruby-on-rails - ActiveRecord 結果配列のスタブ化

Ruby 1.8.6 を使用している場合、テスト対象のコードが結果に対して「count」メソッドを呼び出す場合、ファインダー メソッドをスタブ化して配列を返すことはできません。

これは、Array.count が Ruby 1.8.7 でのみ追加されたためです。Rails は count メソッドも動的に追加します。私は ActiveRecord::Calculations モジュールを使用していると思います。

この結果の配列を、Rails finder メソッドによって返される特別な配列の種類とまったく同じように動作するものに変換する方法はありますか? 結果をページ分割するときは簡単です。[].paginate を呼び出すだけです。しかし、それは通常の検索結果では機能しません。私は試し[].extend(ActiveRecord::Calculations)ましたが、それもうまくいきません。

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

unit-testing - Rhinoモックを使用してスタブメソッドの戻り値を設定するための手法の違い

メソッドに偽の実装を与えるための次の2つの方法の主な違いは何ですか?

あるテストでは2番目の方法をうまく使用していましたが、別のテストでは、最初の方法を使用しないと動作を実現できません。

だから(最初の)、

vs(2番目)。


編集

問題は、2番目の手法が新しいLoginUserを返すことを期待しているときに、テストでnullを返すことです。最初の手法は、新しいLoginUserを返すことで期待どおりに動作します。両方の場合に使用される他のすべてのテストコードは同じです。

それはおそらくインターフェースの過負荷と関係があるのでしょうか?

テスト対象のメソッドで問題を引き起こしている行は次のとおりです。

デバッグモードでは、identity.Nameがnullになることはなく、常に「dummyName」になります。

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

ruby-on-rails - RSpec on Controller and Stubbing

I am pretty new to using rspec and am trying to write my tests for my controllers. I have this controller (I am using mocha for stubbing):

I am trying to test this action with something like this:

The "should assign cardset" test passes, but I cannot figure out how to properly stub this line @card = @cardset.cards.find_by_id(params[:id]) for the "should assign card" test. What is the best way of testing this action, or if I'm on the right track how would I properly stub my Model calls?

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

ruby-on-rails - findの期待は機能しませんが、find_by_idの期待は

私はこのコントローラーコードを持っています:

そして、このRSpecテストコード(Mochaでモック):

このテストは次の場合に失敗します。

期待値を次のように変更した場合:

次に、テストに合格します。なぜこれはfind_by_idで合格し、見つからないのでしょうか。

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

ruby-on-rails - どこで/何をテストしますか? モック、スタブ、機能、ユニット... (Ruby/Rails)?

私はかなり大きなRailsアプリをテストしようとしています.おそらくずっとやっていたはずですが、完全に快適ではありませんでした. 現在、ユーザーが正常に作成されるかどうかを確認する機能テストに取り組んでいます。基本的に、いくつかのことをテストしたいと思います。

  • ユーザーが保存されたかどうか (つまり、DB に新しいレコードがあるかどうか)
  • 彼の情報 (名前、電子メールなど) が正しいかどうか
  • いくつかのフィールドがデータベースに自動的に追加されたかどうか
  • メールが送信されたかどうか
  • 電子メールのテキストが適切かどうか (つまり、電子メール テンプレートのユーザー名とアクティベーション リンクを代用するかどうか)

私が理解しているように、単体テストはモデルをテストするように設計されており、機能テストはコントローラーをテストする必要があります。上記のテストのいくつかは、私が見ているように、単体テストである必要があります。具体的には、入力がデータベースフィールドに正しくマップされていることと、ユーザーモデルを使用した単体テストで before_create フィルターが機能することを確認できると思います。

他の人は機能テストを要求しているようです - 電子メールが送信されるかどうか (そしておそらくそのテキスト - おそらくそれは UserEmail テストに属しますが?) と新しいレコードがあるかどうか.

これがモック/スタブに関する質問です。ユーザー コントローラーの機能テストでは、user.save が適切なパラメーターで呼び出されることを確認する必要がありますか、それとも DB が新しいレコードを取得することをテストする必要がありますか? 前者はスタブを呼び出しているようで、Rails は十分にテストされているため、ユーザー モデルで .save が呼び出された場合にオブジェクトが正常に保存されると想定しています。しかし、後者 (たとえば assert_difference の呼び出し)はより完全に感じられます。どちらを選ぶ?

これがあまりにも複雑な質問である場合は申し訳ありません-大きなトピックであることは理解していますが、このような特定の(長い場合)例を理解することで、一般的なテストについて多くのことが明確になることを願っています.

ありがとう!

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

visual-studio-2005 - VS2005オプション生成メソッドスタブが機能しない

わかりました。linqプレビュー(2006年5月)をインストールしましたが、失敗したようです。現在、VS2005の最も重要な機能の1つは機能していません(オプションはメソッドスタブを生成します(Shift + Alt + F10))。以前は、プロジェクトを開始するたびにこのメッセージが表示されていました(「これは、サポートされていないバージョンのMicrosoft Visual C#3.0 / Microsoft Visual Basic 9.0です。そのため、多くの機能が期待どおりに機能しない可能性があります。」)。アンインストールしましたが、機能はまだ機能していませんが、エラーメッセージは表示されなくなりました。Visual Studio Code Editorでこの単純なコードを入力すると、私が何について話しているのかわからない場合は、次のようになります。 "string myString = GetString();" 最初にGetString()を宣言しなくても、GetString()の下にスマートタグが表示され、それを選択すると、このメソッドスタブを自動生成するかどうかを尋ねるドロップダウンが表示されます。

再度有効にする方法はありますか?