タグ付けされた質問 「mockito」

MockitoはJava用のモックフレームワークです。EasyMockに触発されましたが、モックのスタブ化、検証、およびツールをさらに簡素化することを目的としています。

5
MockitoとJMockitの比較-なぜMockitoはJMockitよりも優れているのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私のプロジェクトで使用するモッキングフレームワークを調査していて、それをJMockitとMockitoに絞り込んでいます。 Stackoverflow でMockitoが「Javaに最適なモックフレームワーク」に選ばれたことに気づきました。JMockitの「モッキングツール比較マトリックス」の 機能を比較すると、JMockitには複数の異なる機能があるようです。 誰もが何に関する具体的な情報(ない意見)持っていますMockitoを用いて達成することができない行うことができますJMockitその逆と副の?

2
Mockito:doAnswer対thenReturn
後のユニットテストのためにMockitoを使用しています。doAnswervsをいつ使用するか混乱していますthenReturn。 誰かが詳細に私を助けてくれますか?これまでのところ、で試しましたthenReturn。
124 java  mockito 

7
Springで自動配線された@ValueフィールドをMockitoでモックするにはどうすればよいですか?
Spring 3.1.4.RELEASEとMockito 1.9.5を使用しています。私の春のクラスでは: @Value("#{myProps['default.url']}") private String defaultUrl; @Value("#{myProps['default.password']}") private String defaultrPassword; // ... 私が現在そのように設定しているJUnitテストから: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml" }) public class MyTest { 「defaultUrl」フィールドの値をモックしたいのですが。他のフィールドの値をモックしたくないことに注意してください。「defaultUrl」フィールドのみをそのままにしたいと思います。またsetDefaultUrl、クラスには明示的な「setter」メソッド(例:)がなく、テストのためだけにメソッドを作成したくないことにも注意してください。 これを踏まえて、どのようにしてその1つのフィールドの値を模擬できますか?

2
Mockitoマッチャーはどのように機能しますか?
Mockito引数マッチャ(などはany、argThat、eq、same、及びArgumentCaptor.capture())Hamcrestのマッチャから非常に動作が異なります。 Mockitoマッチャーは、マッチャーが使用された後に長時間実行されるコードであっても、InvalidUseOfMatchersExceptionを頻繁に引き起こします。 Mockitoマッチャーは、特定のメソッドの1つの引数がマッチャーを使用する場合、すべての引数に対してMockitoマッチャーの使用のみを要求するなど、奇妙なルールに守られます。 Mockitoマッチャーは、Answersをオーバーライドしたり、使用したりすると、NullPointerExceptionを引き起こす可能性があります(Integer) any()。 特定の方法でMockitoマッチャーを使用してコードをリファクタリングすると、例外や予期しない動作が発生し、完全に失敗する可能性があります。 Mockitoマッチャーがこのように設計されている理由と、それらの実装方法を教えてください。
122 java  mocking  mockito 

6
モックオブジェクトの初期化-MockIto
MockItoを使用してモックオブジェクトを初期化する方法はたくさんあります。これらの中で最良の方法は何ですか? 1。 public class SampleBaseTestCase { @Before public void initMocks() { MockitoAnnotations.initMocks(this); } 2。 @RunWith(MockitoJUnitRunner.class) [編集] 3。 mock(XXX.class); これらより良い他の方法があるかどうか私に提案してください...
122 java  junit  mockito 

5
最初の呼び出しのシミュレーションが失敗し、2番目の呼び出しが成功する
Mockitoを使用して、以下の(簡略化された)コードをテストしたいと思います。Mockitoに最初に失敗し、2回目に成功するように指示する方法がわかりません。 for(int i = 1; i < 3; i++) { String ret = myMock.doTheCall(); if("Success".equals(ret)) { log.write("success"); } else if ( i < 3 ) { log.write("failed, but I'll try again. attempt: " + i); } else { throw new FailedThreeTimesException(); } } 私は成功テストを次のように設定できます: Mockito.when(myMock).doTheCall().thenReturn("Success"); そして、以下の故障テスト: Mockito.when(myMock).doTheCall().thenReturn("you failed"); しかし、1回(または2回)失敗し、その後成功した場合、どうすればテストできますか?
119 java  mockito 

2
@RunWith(MockitoJUnitRunner.class)とMockitoAnnotations.initMocks(this)
新しいjUnit4テストを作成しているときに、@RunWith(MockitoJUnitRunner.class) またはMockitoAnnotations.initMocks(this)のどちらを使用するのか迷っています。 私は新しいテストを作成しました、そしてウィザードはランナーでテストを自動的に生成しました。MockitoJUnitRunnerのJavadocは次のように述べています。 JUnit 4.4以降と互換性があるこのランナーは、次の動作を追加します。 Mockで注釈が付けられたモックを初期化するため、MockitoAnnotations.initMocks(Object)を明示的に使用する必要はありません。モックは各テストメソッドの前に初期化されます。各テストメソッドの後にフレームワークの使用を検証します。 Runnerを使用することが、これまで使用してきたinitMocks()メソッドよりも優れているかどうかはわかりません。 どんな考えやリンクもいただければ幸いです!
118 java  junit4  mockito 

7
異なるパラメーターで複数のメソッド呼び出しを確認する方法
動作を確認したい次の方法があります。 public void methodToTest(Exception e, ActionErrors errors) { ... errors.add("exception.message", ActionMessageFactory.createErrorMessage(e.toString())); errors.add("exception.detail", ActionMessageFactory.createErrorMessage(e.getStackTrace()[0].toString())); ... } 私の@Testクラスでerrors.add()は、「exception.message」で呼び出され、「exception.detail」で再度呼び出されることを確認するために、次のようなことを望んでいました verify(errors).add(eq("exception.message"), any(ActionError.class)); verify(errors).add(eq("exception.detail"), any(ActionError.class)); しかしモッキートは次のように文句を言う Argument(s) are different! Wanted: actionErrors.add( "exception.message", <any> ); Actual invocation has different arguments: actionErrors.add( "exception.detail", org.apache.struts.action.ActionError@38063806 ); 両方の値をチェックするようにMockitoに指示するにはどうすればよいですか?
115 java  mockito 

2
mockito when()呼び出しはどのように機能しますか?
次のMockitoステートメントがあるとします。 when(mock.method()).thenReturn(someValue); mock.method()ステートメントが戻り値をwhen()に渡す場合、Mockitoはモックのプロキシ処理をどのように作成しますか?私はこれがいくつかのCGLibのものを使用することを想像しますが、これが技術的にどのように行われるかを知りたいと思います。

12
mockitoを使用したプライベートメソッドのテスト
パブリッククラスA { public void method(boolean b){ if(b == true) method1(); そうしないと method2(); } プライベートvoid method1(){} プライベートvoid method2(){} } パブリッククラスTestA { @テスト public void testMethod(){ A a = mock(A.class); a.method(true); // verify(a).method1();のようにテストする方法 } } プライベートメソッドをテストする方法が呼び出されるかどうか、およびmockitoを使用してプライベートメソッドをテストする方法???
104 java  junit  mockito 

4
Jock5でMockitoを使用する方法
MockitoおよびJUnit 5でインジェクションを使用するにはどうすればよいですか? JUnit4では、@RunWith(MockitoJUnitRunner.class)アノテーションを使用できます。JUnit5には@RunWithアノテーションはありませんか?

13
不要なスタブの例外を解決する方法
私のコードは以下の通りです、 @RunWith(MockitoJUnitRunner.class) public class MyClass { private static final String code ="Test"; @Mock private MyClassDAO dao; @InjectMocks private MyClassService Service = new MyClassServiceImpl(); @Test public void testDoSearch() throws Exception { final String METHOD_NAME = logger.getName().concat(".testDoSearchEcRcfInspections()"); CriteriaDTO dto = new CriteriaDTO(); dto.setCode(code); inspectionService.searchEcRcfInspections(dto); List<SearchCriteriaDTO> summaryList = new ArrayList<SearchCriteriaDTO>(); inspectionsSummaryList.add(dto); when(dao.doSearch(dto)).thenReturn(inspectionsSummaryList);//got error …
100 java  junit  mockito 

2
非モックオブジェクトのメソッドが呼び出されたことを確認する方法は?
mockitoはモックオブジェクトのメソッドが呼び出されているかどうかを確認するだけであり、モックオブジェクトは常に次のようなものを持っているようです doReturn().when(mock object) しかし、モックオブジェクトを作成して定義doReturn().when(mock object) し、別のオブジェクトのメソッドが呼び出されることを確認できますか? これが私がしたいことです:私はmockEnvironmentを定義し、何が起こっても応答を返します。しかし、私は別のケースで呼び出されたanotherObjのさまざまなメソッドを確認したいと思います。 どうやってするか? public class BaseClass { private Environment mockEnvironment; @Test public void testcase () { setMockitoEnvironment(); response = foo(mockEnvironment, argument1); verify(anotherObj).codePath1(...); response = foo(mockEnvironment, argument2); verify(anotherObj).codePath2(...); } } //this method successfully return a response with any input //because I do not care how response …

3
PowerMockito.whenNew()の使用がモックされず、元のメソッドが呼び出されます
以下のようなコードがあります: Class A { public boolean myMethod(someargs) { MyQueryClass query = new MyQueryClass(); Long id = query.getNextId(); // some more code } } Class MyQueryClass { .... public Long getNextId() { //lot of DB code, execute some DB query return id; } } 今、私はのテストを書いていA.myMethod(someargs)ます。実際のメソッドをスキップしてquery.getNextId()、代わりにスタブ値を返したいのですが。基本的に、私はあざけりたいですMyQueryClass。 だから私のテストケースでは、私は使用しました: MyQueryClass query = PowerMockito.mock(MyQueryClass.class); PowerMockito.whenNew(MyQueryClass.class).withNoArguments().thenReturn(query); …

7
Mockito- @ Spy vs @Mock
Mockito-スパイがオブジェクトの実際のメソッドを呼び出すのに対し、モックはdoubleオブジェクトのメソッドを呼び出すことを理解しています。また、コードの臭いがない限り、スパイは避けてください。しかし、スパイはどのように機能し、いつ実際に使用する必要がありますか?それらはモックとどう違うのですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.