EDIT . At first glance, Stefan answered. Its diagnosis is almost correct, however org.mockito.exceptions.verification.junit.ArgumentsAreDifferent do extends junit.framework.ComparisonFailure , which is present in JUnit 3.x, and this is a TestNG 5.x dependency. VerifyError itself can do something when the JVM performs the binding, since there are changes to the ComparisonFailure type itself between JUnit 3.x and JUnit 4.x.
In any case, the problem in Mockito is that it uses the JUnit class, where it should not. And that Mockito no longer supports JUnit 3.x.
TL tr
We have a problem in the code inside of which the verification mode is used, using the JUnit class, which is not in the classpath. Adding JUnit depending on your POM will correct the situation.
Thanks for reporting. I created a problem on GitHub (# 152)
long story
For some reason, TestNG 5.xxx makes the JVM crash with VerifyError on a method that is not even called at this point.
java.lang.VerifyError: (class: org/mockito/internal/verification/VerificationOverTimeImpl, method: verify signature: (Lorg/mockito/internal/verification/api/VerificationData;)V) Incompatible argument to function
But switching to the latest version of TestNG, 6.8. Somehow the JVM crashes with a clear reason: NoClassDefFoundError
java.lang.NoClassDefFoundError: junit/framework/ComparisonFailure
Which points to the real problem here, now only find which class depends on JUnit. This class ArgumentsAreDifferent , which extends junit.framework.ComparisonFailure , this exception appears in the try / catch block in VerificationOverTimeImpl , which is necessary for checking the timeout.
This problem probably exists from 1.10.x when fixing some timeout problems.
Note. I also copied this answer to the mailing list .