public class A {
public void methodOne(int argument) {
//some operations
B b = methodTwo(int argument);
// some operations based on b
// switch cases based on returned values of b
}
private void methodTwo(int argument)
DateTime dateTime = new DateTime();
//use dateTime to perform some operations
}
答えて
あなたが本当にクラスB
を模擬しなければならない場合は、次のようにあなたがそれを行うことができます(PowerMockを使用せず、代わりにJMockitライブラリー):A
はB
を取得する方法
public class ExampleTest {
@Tested A a;
@Test
public void exampleTest(@Mocked B anyB) {
// Record calls to methods on B, if/as needed by code under test:
new Expectations() {{ anyB.doSomething(); result = "mock data"; }};
// Exercise the code under test:
a.methodOne(123);
// Verify a call to some other method on B, if applicable:
new Verifications() {{ anyB.someOtherMethod(anyString, anyInt); }};
}
}
(注)このテストは気にしません。よいテストが常にあるべきであるので、それはprivate methodTwo
のような実装の詳細から独立しています。
理想的には、あなたはしません!
意味:あなたのmethodOne()は特定の値を返しています。したがって、可能であれば、ではなく、のテスト内部を使用することをお勧めします。
したがって、さまざまなパラメータでmethodOne()を呼び出すテストケースを記述する必要があります。そのメソッドから返された値が例外と一致することを宣言します。
合理的なテストを行うためにその "B"オブジェクトを制御する必要がある場合は、依存性注入を使用し、何らかの形でテスト対象のクラスにBオブジェクトを提供することです。それで、あなたは嘲笑されたBを作り、それをテスト中のあなたのクラスに渡すことができるからです。
他の言葉:テスト可能なコードを書く方法を学ぶ。例えば、これらを見て、videos。真剣に。その材料の各分はあなたの時間の価値があります。
ありがとう..私はビデオを見る – mani
クラス「A」から使用されるオブジェクト「B」を制御するための「*正しい*」方法はありません。依存性注入は他にもオプションであり、それぞれのオプションには独自のトレードオフがあります。 –
- 1. OCMockを使用せずにローカル変数をモックする方法
- 2. ローカル変数をPowerMockitoでモックする方法は?
- 3. HandleBarjs内の他のローカル変数の代わりに1つのローカル変数の値を使用する方法
- 4. 単体テストで、リクエスト、パイプ、ストリームをモックで使用するプライベートメソッド
- 5. "^"を使わずに変数に電源を投入する方法は?
- 6. ローカル変数の値を使用後にクリア/ガベージコレクションする方法
- 7. ローカル変数をBash関数で使用する方法
- 8. パラメータを使わずにJavaでどこでも変数を使用できるようにする方法
- 9. エディタを使わずにシェル文書に変数を追加する方法
- 10. JQueryとJQueryUIをnoConflictを使わずにローカル変数にロードできますか?
- 11. VC++を使用してイーサネットポートにアクセスする方法は?ソケットを使わずに
- 12. ウォッチャーを$ scopeを使用せずに変数に適用する方法は?
- 13. sapui5のウィンドウオブジェクトを使わずにグローバル変数を宣言する方法
- 14. ポインタキャストを使用するローカル変数
- 15. jestを使用するときにモジュールをモックする方法
- 16. JqueryInActionブックの例では代わりにローカル変数を使用
- 17. コード内の(ローカル変数 '...'は使用されない)ローカル変数の前景色を変更する方法
- 18. Rspec - オブジェクトをプライベートメソッドでモックする
- 19. フラッシュを使わずにテキストをクリップボードにコピーする方法は?
- 20. struts 1セッションを使わずにjspファイルでアクション変数を直接使用する方法
- 21. Rebol:build-markup関数でローカル変数を使用するには?
- 22. jQueryを使わずにフォームをシリアル化する方法は?
- 23. PostgreSQL:to_char()を使わずに日付をフォーマットする方法は?
- 24. テーブルを使わずにテーブルレイアウトを達成する方法は?
- 25. バゼルを使わずにテンソルフローモデルを量子化する方法は?
- 26. ローカル変数を使用してString.Formatを使用するC#
- 27. iOSブロックで__blockを使用せずに変数を変更する方法
- 28. コンテキストを使用せずにグローバル変数を宣言する方法は?
- 29. 値を初期化せずにクラス変数を使用する方法は?
- 30. 使用する方法モック適切
コメントはまだありません。常に質問を更新してください。 – GhostCat