【发布时间】:2014-04-20 19:51:23
【问题描述】:
我用谷歌搜索了一下,在我看来这是可能的。但是当我这样尝试时:
class Calc {
def sum(first: Int, second: Int) = {
first + second
}
}
和“测试”类:
class CalcTest {
@Test
def testSum(@Mocked test: Calc) {
new NonStrictExpectations() {{
test.sum(2, 3)
times = 1
result = Int.box(5)
}}
Assert.assertEquals(5, test.sum(2, 3))
}
}
我有一个例外:
java.lang.IllegalAccessError: 试图访问类 mockit.Invocations 来自类 com.kvg.client.CalcTest$$anon$1 在 com.kvg.client.CalcTest$$anon$1.(CalcTest.scala:11) 在 com.kvg.client.CalcTest.testSum(CalcTest.scala:9) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:77) 在 com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195) 在 com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
JMockit 可以与 scala 一起使用吗?如果可以的话,我做错了什么?
【问题讨论】:
-
大约一年前我用 Scala 尝试了 JMockIt,但没有成功。我不确定是否可以做到。 JMockIt 做了很多字节码操作,我怀疑它是否考虑到了 Scala 在字节码中使用的各种技巧。