1
私のプロジェクトをGroovyに変換することを実験しており、MockitoでJUnit4を使用したいと考えています。私は、別のメソッドを呼び出すと、春のAop around adviceが呼び出されることを検証するテストがあります。GroovyのMockito Matchers
testPointCut(com.meetupinthemiddle.LoggingAspectTest) Time elapsed: 0.277 sec <<< ERROR!
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
0 matchers expected, 1 recorded:
-> at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
For more info see javadoc for Matchers class.
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPogoSite(CallSiteArray.java:147)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:164)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.meetupinthemiddle.LoggingAspectTest.testPointCut(LoggingAspectTest.groovy:20)
しかし、Javaで同等のコードは、任意のアイデアなしproblem-で動作します:
@Test
void testPointCut() {
//Given
def target = new MainController();
def factory = new AspectJProxyFactory(target);
def aspect = mock(LoggingAspect.class);
factory.addAspect(aspect);
def proxy = factory.getProxy();
when(aspect.log(any(ProceedingJoinPoint))).thenReturn(null);
//When
proxy.index();
//Then
verify(aspect).log(any(ProceedingJoinPoint));
}
私はこれを実行して、私は例外を取得:ここ
は私のコードですか? 問題はこれと同じかもしれないと思いますか? Bug in Mockito with Grails/Groovyしかし答えはありません!