問題タブ [partial-mocks]
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.
java - PowerMockを使用してパブリックメソッドを部分的にモックする方法は?
以下は私のクラスです
したがって、上記のクラスで testThisMethod() をテストしているときに、helperMethodPublic() を部分的にモックしたいと考えています。
現在のところ、私は次のことを行っています。
コンパイラは文句を言いません。テストを実行しようとすると、コードが helperMethodPublic() メソッドにヒットすると、コントロールがメソッドに入り、そこにあるコードの各行の実行を開始します。これを防ぐにはどうすればよいですか?
unit-testing - 部分的なモック-期待は無視されます(Rhino Mocks)
以下の例のようなクラスをテストしようとしています。
部分的なあざけりは私の期待を受け入れていないようです。テストを実行すると、入力に関するエラーが表示されます。デバッグすると、メソッドの実際の実装が期待どおりに実行されていないことがわかります。
私はこのテストを正しく行っていますか?ドキュメント(http://ayende.com/wiki/Rhino%20Mocks%20Partial%20Mocks.ashx)によると:「部分的なモックは、クラスで定義されたメソッドの期待値を定義しない限り、そのメソッドを呼び出します。期待値を定義しました。これには通常のルールが使用されます。」
java - この場合の部分的なモックの何が問題になっていますか?
2つのメソッドがあり、そのうちの1つは基本的に、ほんの少しの追加処理を伴うもう1つのメソッドのラッパーであるとしましょう。
ItemRepositoryImplを部分的にモックし、delete(UUID)が最終的にdelete(Item)を呼び出すことを確認するdelete(UUID)メソッドの単体テストを作成することの何が問題になっていますか?これを行うと、削除メソッドごとに重複するテストをたくさん書く必要がなくなります。
Mockitoでは、次のようなスパイを使用してこのようなテストを実装できます。
ただし、Mockitoのドキュメントでは、このタイプの部分的なモックの使用を強く推奨しておらず、基本的には、暫定的なレガシーコードとサードパーティのAPIでのみ使用する必要があると述べています。より良い解決策は何でしょうか?
mockito - 部分的なモックは悪い習慣と見なされますか? (モッキート)
Mockito を使用してビジネス オブジェクトの単体テストを行っています。ビジネス オブジェクトは、通常は DB からデータを取得する DAO を使用します。ビジネス オブジェクトをテストするには、別のメモリ内 DAO (データを HashMap に保持する) を使用する方が、すべてのオブジェクトを記述するよりも簡単であることに気付きました。
ステートメント。このような DAO を作成するために、次のように DAO インターフェースを部分的にモックすることから始めました。
しかし、Mockito を使用せずに(インメモリ HashMap を使用して)まったく新しい DAO 実装を自分で実装し(その InvocationOnMock オブジェクトから引数を取得する必要はありません)、テストされたビジネス オブジェクトにこの新しいダオ。
さらに、部分的なモックは悪い習慣と見なされていることを読みました。私の質問は次のとおりです。私の場合、私が行っていることは悪い習慣ですか? 欠点は何ですか?私にはこれで問題ないように思えますが、潜在的な問題が何であるか疑問に思っています。
c# - メソッド内でコードを実行せずに、メソッドが呼び出されたとアサートするにはどうすればよいですか?
以下のコードがあると想像してください
x==y の場合に methodone が呼び出されるかどうかをアサートしたいが、テストでメソッド 1 内のコードを実行したくない場合は、データベース関連の処理を行うため...
私はこのようなことを書いています
しかし、メソッド1でも実行しようとしますが、テストでデータベース接続を実行したくありません。条件が機能しており、呼び出されたかどうかを確認するだけです。
python - テストしているオブジェクト内で呼び出された 1 つのメソッドのみをモックする方法
メソッドをテストしたいが、それが呼び出す他のメソッドをモックアウトしたい。概念を説明するために、次の簡単な例を作成しました。
私は Mox と呼ばれる Python モック フレームワークを使用しており、これを行うために次のコードを書きました。
コメント:
上書きされていないメソッドでこのモックを呼び出すと、モックはデフォルトで元のコードになり、最後の呼び出しが置き換えられて、必要な一連の呼び出しを取得できると思いました...しかしこれはしません。挿入メソッドを持たないテスト オブジェクト内にモック オブジェクトを埋め込む方法がわかりません。
これを解決するために Partial Mocks と Chained Mocks を調べましたが、これをやってのける方法が見つかりませんでした。
助けてくれてありがとう:)
-- ピーター
unit-testing - Rhino Mock 部分モックのスタブ セッター
この質問で受け入れられた回答に従っていますが、NullReferenceException
.
私が必要としているのは、部分的なモック スタブ プロパティ (ゲッターとセッターの両方) をスタブのように (単純な自動プロパティとして) 動作させることです。現在、ゲッターをスタブすることはできますが、セッターをスタブすることはできません。
これは可能ですか?
編集:これは簡単な例です。問題の説明に役立つことを願っています。
c# - Moq を使用したクラス内部メソッドの部分的なモック
値を適切に返すために内部メソッドに依存するパブリック メソッドを含むクラスがあります。
次のクラスとテスト ファイルを考えてみましょう。
次のテスト ケースが機能します。
しかしMockedMethod()
、私のこれは外部的には役に立たないとしましょう。問題は、このメソッドをinternal
(InternalsVisibleTo()
適切に使用しても)次のようにマークすることです。
は、まったく同じテストをメッセージで失敗させますAssert.AreEqual failed. Expected:<mocked>. Actual:<original>
。
これは Moq のバグですか、それとも何らかの制限ですか?
objective-c - OCMockito を使用して読み取り専用プロパティの動作を確認するにはどうすればよいですか?
私はReactiveCocoaでMVVMを使用しており、テストにはOCMockitoを使用しています。ViewController A と ViewController B があるとします。A は B へのセグエを実行する必要があります。これが発生したときに、A が最初に代入を介して必要なデータ (「モデル」) を B に渡すことを確認したいと思います。
B
次のようになります。
View Controller のどこかにA
、次のステートメントがあります。
この割り当てが行われていることを確認したいのですが、viewModel
プロパティは読み取り専用です。viewModel は、viewController の init メソッドによって初期化されます。
ここでviewModelをモックアウトするにはどうすればよいですか?
viewControllerB を部分的にモックして mock を返すこともできますviewModel
。これを確認しますが、https://github.com/jonreid/OCMockito/issues/38では、部分的なモックは削除されたと言われています。どうして?!