問題タブ [mocking]
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.
testing - オブジェクト モッキングとは何ですか? また、いつ必要になりますか?
多くの人は、単体テストを作成するときにモック オブジェクトを使用します。モックオブジェクトとは?なぜ私はそれが必要なのですか?モック オブジェクト フレームワークは必要ですか?
java - super()呼び出しの周りにtryブロックを使用できないのはなぜですか?
したがって、Javaでは、コンストラクターの最初の行はsuperの呼び出しである必要があります...暗黙的にsuper()を呼び出す場合でも、明示的に別のコンストラクターを呼び出す場合でも同じです。私が知りたいのは、なぜその周りにトライブロックを配置できないのですか?
私の特定のケースは、テスト用のモッククラスがある場合です。デフォルトのコンストラクターはありませんが、テストを読みやすくするためのコンストラクターが必要です。また、コンストラクターからスローされた例外をRuntimeExceptionにラップしたいと思います。
だから、私がやりたいのは事実上これです:
しかし、Javaは、superが最初のステートメントではないと不満を漏らしています。
私の回避策:
これは最善の回避策ですか?なぜJavaは私に前者をさせないのですか?
「なぜ」についての私の最も良い推測は、Javaが、潜在的に矛盾した状態の構築されたオブジェクトを私に持たせたくないということです...しかし、モックを行う際には、私はそれを気にしません。私は上記を行うことができるはずです...または少なくとも私は上記が私の場合には安全であることを知っています...またはとにかくそうあるべきであるように見えます。
テストされたクラスから使用するメソッドをオーバーライドしているので、初期化されていない変数を使用しているリスクはありません。
unit-testing - Sealed クラスをどのようにモックしますか?
シールされたクラスをモックすることは、非常に面倒です。私は現在、これを処理するためにAdapter パターンを好みますが、単に維持することについては何かが奇妙に感じます。
では、封印されたクラスをモックする最良の方法は何ですか?
Java の回答は大歓迎です。実際、Java コミュニティはこれに長く取り組んでおり、多くのことを提供していると思います。
ただし、.NET に関する意見の一部を次に示します。
java - Java に最適なモック フレームワークは何ですか?
Java でモック オブジェクトを作成するための最適なフレームワークは何ですか? なんで?各フレームワークの長所と短所は何ですか?
c# - 単体テスト IHttpModule
それを考慮して、HttpModule
asp.netでどのように単体テストを行い、インターフェイスを実装しませんか?HttpApplication
HttpContext
c# - DataReaderからリストを作成するメソッドをテストするにはどうすればよいですか?
だから私は手動のデータベース操作に重いいくつかのレガシーコードに取り組んでいます。ここでは品質の類似性を維持しようとしているので、可能な限りTDDを使用します。
私が取り組んでいるコードは、入力する必要があります。たとえば、List<Foo>
機能しているFooに必要なすべてのフィールドを返すDataReaderからのコードです。ただし、コードが実際に1つのデータベース行ごとに1つのリスト項目を返すことを確認したい場合は、次のようなテストコードを記述しています。
これもかなり退屈で簡単に壊れます。
結果が脆弱なテストの大きな混乱にならないように、この問題にどのように取り組む必要がありますか?
ところで、私は現在これにRhino.Mocksを使用していますが、結果が十分に説得力がある場合は変更できます。代替案がTypeMockでない限り、彼らのEULAは私の好みには少し怖すぎたので、最後にチェックしました。
編集:私も現在C#2に制限されています。
unit-testing - ユニットテストのランダムデータ?
フィールドにランダムデータを入力するオブジェクトの単体テストを作成する同僚がいます。彼の理由は、通常のテストでは単一の静的な値しか使用しないのに対し、多くの異なる値をテストするため、テストの範囲が広がるためです。
私は彼にこれに対していくつかの異なる理由を与えました、主な理由は次のとおりです:
- ランダムな値は、テストが本当に再現可能ではないことを意味します(つまり、テストがランダムに失敗する可能性がある場合は、ビルドサーバーで失敗し、ビルドを中断する可能性があります)
- ランダムな値でテストが失敗した場合は、a)オブジェクトを修正し、b)毎回その値をテストするように強制する必要があります。これにより、動作することがわかりますが、ランダムであるため、値が何であるかはわかりません。
別の同僚が追加しました:
- 例外をテストしている場合、ランダムな値では、テストが期待どおりの状態になることは保証されません。
- ランダムデータは、単体テストではなく、システムのフラッシュと負荷テストに使用されます
他の誰かが私が彼にこれをやめさせるために彼に与えることができる追加の理由を追加できますか?
(または、これは単体テストを作成するための許容可能な方法であり、私と他の同僚は間違っていますか?)
asp.net-mvc - Asp.net-mvc コントローラー コンテキストのモック
したがって、コントローラーのコンテキストは、いくつかの asp.net 内部に依存します。単体テスト用にこれらをきれいにモックアップする方法は何ですか? たとえば、「GET」を返すための Request.HttpMethod のみが必要な場合、大量のセットアップでテストを詰まらせるのは非常に簡単なようです。
ネットでいくつかの例/ヘルパーを見てきましたが、古いものもあります。これは、最新かつ最高のものを保持するのに適した場所であると考えました.
最新バージョンの rhino モックを使用しています
unit-testing - いつ嘲笑する必要がありますか?
モック オブジェクトとフェイク オブジェクトの基本的な理解はありますが、モックをいつどこで使用するかについてはよくわかりません。特に、ここのシナリオに適用されるためです。
unit-testing - モックはスタブよりも優れていますか?
少し前に、 MartinFowlerによるMocksAre n't Stubsの記事を読みましたが、複雑さの追加に関して外部の依存関係が少し怖いことを認めなければならないので、質問したいと思います。
単体テストで使用するのに最適な方法は何ですか?
テスト対象のメソッドの依存関係を自動的にモックするために、常にモックフレームワークを使用する方がよいでしょうか、それとも、たとえばテストスタブなどのより単純なメカニズムを使用する方がよいでしょうか。