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

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

10
Mockitoでvoidメソッドをモックする方法
void戻り値型でメソッドをモックする方法は? オブザーバーパターンを実装しましたが、方法がわからないため、Mockitoでモックできません。 そして、インターネットで例を見つけようとしましたが、成功しませんでした。 私のクラスは次のようになります: public class World { List<Listener> listeners; void addListener(Listener item) { listeners.add(item); } void doAction(Action goal,Object obj) { setState("i received"); goal.doAction(obj); setState("i finished"); } private string state; //setter getter state } public class WorldTest implements Listener { @Test public void word{ World w= mock(World.class); w.addListener(this); ... ... …


5
Mockitoを使用して特定のメソッドが呼び出されなかったことを確認するにはどうすればよいですか?
オブジェクトの依存関係でメソッドが呼び出されていないことを確認するにはどうすればよいですか? 例えば: public interface Dependency { void someMethod(); } public class Foo { public bar(final Dependency d) { ... } } Fooテストでは: public class FooTest { @Test public void dependencyIsNotCalled() { final Foo foo = new Foo(...); final Dependency dependency = mock(Dependency.class); foo.bar(dependency); **// verify here that someMethod was not …
625 java  tdd  mockito 


6
Mockitoは、複数回呼び出されたメソッドの引数をキャプチャできますか?
2回呼び出されるメソッドがあり、2番目のメソッド呼び出しの引数をキャプチャしたい。 これが私が試したものです: ArgumentCaptor<Foo> firstFooCaptor = ArgumentCaptor.forClass(Foo.class); ArgumentCaptor<Foo> secondFooCaptor = ArgumentCaptor.forClass(Foo.class); verify(mockBar).doSomething(firstFooCaptor.capture()); verify(mockBar).doSomething(secondFooCaptor.capture()); // then do some assertions on secondFooCaptor.getValue() しかしTooManyActualInvocations、MockitoはそれdoSomethingを1回だけ呼び出す必要があると考えているため、例外が発生します。 の2番目の呼び出しの引数を確認するにはどうすればよいdoSomethingですか?

5
Mockitoを使用して一部のメソッドのみをモックする
Mockitoを使用して、クラスの一部のメソッドだけをモックする方法はありますか? たとえば、この(確かに考案された)Stockクラスでは、(以下のテストスニペットに示すように)getPrice()とgetQuantity()戻り値をモックしたいgetValue()が、Stockクラスでコーディングされているとおりに乗算を実行したい public class Stock { private final double price; private final int quantity; Stock(double price, int quantity) { this.price = price; this.quantity = quantity; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public double getValue() { return getPrice() * getQuantity(); } @Test …
402 java  mocking  mockito 

2
Mockitoがvoidメソッドをテストすると例外がスローされる
void戻り値の型を持つメソッドがあります。また、いくつかの例外がスローされる可能性があるため、スローされている例外をテストしたいと思います。すべての試行が同じ理由で失敗しました: タイプStubberのメソッドwhen(T)は引数に適用できません(void) 特定の例外をスローするメソッドを取得する方法はありますか? doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

11
Mockitoによる静的メソッドのモック
java.sql.Connectionオブジェクトを生成するためのファクトリを作成しました: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } に渡されたパラメーターを検証したいのですがDriverManager.getConnection、静的メソッドをモックする方法がわかりません。テストケースにはJUnit 4とMockitoを使用しています。この特定のユースケースをモック/検証する良い方法はありますか?

9
Mockito:メソッドをスパイしようとすると、元のメソッドが呼び出されます
Mockito 1.9.0を使用しています。JUnitテストでクラスの単一メソッドの動作を模擬したいので、 final MyClass myClassSpy = Mockito.spy(myInstance); Mockito.when(myClassSpy.method1()).thenReturn(myResults); 問題は、2行目myClassSpy.method1()で実際に呼び出されて例外が発生することです。モックを使用している唯一の理由は、後でmyClassSpy.method1()が呼び出されるたびに、実際のメソッドが呼び出されず、myResultsオブジェクトが返されるためです。 MyClassインターフェースでmyInstanceあり、重要な場合はその実装です。 このスパイ行為を修正するには何をする必要がありますか?
350 java  junit  mockito 

7
Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?
モッキートは初めてです。 以下のクラスが与えられた場合、どのようにしてMockitoを使用して、someMethod呼び出された直後fooに呼び出されたかを確認できますか? public class Foo { public void foo(){ Bar bar = new Bar(); bar.someMethod(); } } 次の確認電話をかけたいのですが、 verify(bar, times(1)).someMethod(); どこbarの嘲笑インスタンスですBar。


4
Mockitoは引数に関係なくメソッドをスタブできますか?
Mockitoを使用して、いくつかのレガシーコードをテストしようとしています。 FooDao次のようにプロダクションで使用されるaをスタブ化したい: foo = fooDao.getBar(new Bazoo()); 私は書くことができます: when(fooDao.getBar(new Bazoo())).thenReturn(myFoo); しかし、明らかな問題は、メソッドをスタブしたオブジェクトとgetBar()同じBazooオブジェクトで呼び出されないことです。(そのnewオペレーターを呪いなさい!) myFoo引数に関係なくメソッドが返されるようにメソッドをスタブできたら、私はそれを気に入っています。それができない場合は、他の回避策の提案に耳を傾けますが、妥当なテストカバレッジが得られるまで、実稼働コードを変更しないようにしたいと思います。


9
同じメソッドを同じ引数で複数回呼び出してMockitoを使用する
後続の呼び出しでスタブ化されたメソッドが異なるオブジェクトを返す方法はありますか?これを実行して、からの不確定な応答をテストしExecutorCompletionServiceます。つまり、メソッドの戻り順序に関係なくそれをテストするために、結果は一定のままです。 テストしようとしているコードは次のようになります。 // Create an completion service so we can group these tasks together ExecutorCompletionService<T> completionService = new ExecutorCompletionService<T>(service); // Add all these tasks to the completion service for (Callable<T> t : ts) completionService.submit(request); // As an when each call finished, add it to the response set. for (int i …
289 java  mocking  mockito 

23
MockitoモックをSpring Beanに注入する
JUnitでのユニットテストの目的で、MockitoモックオブジェクトをSpring(3+)Beanに挿入したいと思います。現在、私のBeanの依存関係は@Autowired、プライベートメンバーフィールドのアノテーションを使用して注入されています。 使用を検討しましたReflectionTestUtils.setFieldが、注入したいBeanインスタンスは実際にはプロキシであるため、ターゲットクラスのプライベートメンバーフィールドを宣言していません。テストのためだけにインターフェイスを変更するため、依存関係へのパブリックセッターを作成したくありません。 私はSpringコミュニティからのアドバイスに従いましたが、モックが作成されず、自動配線が失敗します。 <bean id="dao" class="org.mockito.Mockito" factory-method="mock"> <constructor-arg value="com.package.Dao" /> </bean> 現在発生しているエラーは次のとおりです。 ... Caused by: org...NoSuchBeanDefinitionException: No matching bean of type [com.package.Dao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: { @org...Autowired(required=true), @org...Qualifier(value=dao) } at org...DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(D...y.java:901) at org...DefaultListableBeanFactory.doResolveDependency(D...y.java:770) constructor-arg値を無効な値に設定しても、アプリケーションコンテキストの起動時にエラーは発生しません。

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