A test that works in a .java file throws an exception when put into a .groovy file. Why is that?
- Groovy: 2.3.9
- JMockit: 1.20
- Java: 1.8.0_60
The code:
@Test
public void testSystemCurrentTimeMillis(@Mocked final System unused) {
new NonStrictExpectations() {{
System.currentTimeMillis(); result = 1438357206679L;
}};
long currentTime = System.currentTimeMillis();
Assert.assertEquals(1438357206679L, currentTime);
}
The exception:
java.lang.IllegalArgumentException: No class with name "java_lang_System$currentTimeMillis" found
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at x.GroovyTest$1.<init>(GroovyTest.groovy:12)
at x.GroovyTest.testSystemCurrentTimeMillis(GroovyTest.groovy:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)