What steps will reproduce the problem?
1. Run the test class attached. Error will be thrown.
What is the expected output? What do you see instead?
String "mocked" in the console but I got an error.
What version of the product are you using? On what operating system?
R: powermock-mockito-1.5.1-full.jar, jdk7.
Please provide any additional information below.
The problem is on line 37 of the class DefaultPrivatelyExpectedArguments.
Note the declaration of the following methods:
DefaultPrivatelyExpectedArguments#withArguments(Object firstArgument, Object...
additionalArguments)
Method#invoke(Object obj, Object... args)
And the method call:
method.invoke(mock, firstArgument, additionalArguments);
If I call the method withArguments with more than two arguments, held that: the
call to the invoke method will always be considered to have only two
parameters. One being the first argument and the other an array with the other
arguments.
Solution: change the method signature to
DefaultPrivatelyExpectedArguments#withArguments(Object... arguments) or create
a temporary array for the arguments,
Object[] array = new Object[additionalArguments.length + 1];
array[0] = firstArgument;
System.arraycopy(additionalArguments, 0, array, 1, additionalArguments.length);
method.invoke(mock, array);
Original issue reported on code.google.com by ande.brb on 10 Oct 2013 at 1:20
Original issue reported on code.google.com by
ande.brb
on 10 Oct 2013 at 1:20Attachments: