をあざけるとき、私は、このメソッドをテストしたい:無効マッチャー
public void some_method(SomeFactory someFactory) {
A a = someFactory.populateWithParameter(parameter1, parameter2, parameter3, parameter4);
a.method_call();
....
}
工場はこのよう
public class SomeFactory(){
// some constructor
public A populateWithParameter(SomeClass1 someClass1, SomeClass2 someClass2, String string, int parameter){
return new A(someClass1, someClass2, string, parameter)
}
}
を行くと、テストは、私はこのメッセージ
を取得public void testSomeMethod() throws Exception {
SomeFactory someFactory = mock(SomeFactory.class);
when(someFactory.populateWithParameter(
any(SomeClass1.class), any(SomeClass2.class),
anyString(), anyInt())).thenReturn(notNull());
mainActivity.some_method(someFactory);
...
}
です
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
4 matchers expected, 1 recorded:
おそらく問題は、あなたがthenReturn(notNull())で正規表現を返そうとしているためです。 A(または嘲笑されたバージョン)のインスタンスを返してみることができますか? http://stackoverflow.com/a/26418391/6526330 –
@ Dr.Nitpick私は既にインスタンスを返そうとしましたが、動作しません! – user1611830
うまくいかないと言うと、実際には何が起こるのですか? – jbarat