Mos*_*ses 7 junit scala jmockit
我用Google搜索了一下,对我而言,这似乎是可能的.但是当我尝试这样的时候:
class Calc {
def sum(first: Int, second: Int) = {
first + second
}
}
Run Code Online (Sandbox Code Playgroud)
和"测试"类:
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))
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个例外:
java.lang.IllegalAccessError:尝试从com.kvg上的com.kvg.client.CalcTest $$ anon $ 1.(CalcTest.scala:11)类com.kvg.client.CalcTest $$ anon $ 1访问类mockit.Invocations .client.CalcTest.testSum(CalcTest.scala:9)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner. java:77)com.intellij.rt.exe.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)at com.intellij .rt.execution.application.AppMain.main(AppMain.java:120)
JMockit可以与scala一起使用吗?如果它可以,我做错了什么?
JMockit 不支持 Scala 或 JVM 上除 Java 之外的任何语言
https://github.com/jmockit/jmockit1/pull/358
最后,过去已经有人请求添加对其他 JVM 语言的支持。我记得 Scala (ScalaMock)、Extend 和 Kotlin。如果接受 Groovy 支持,如何拒绝对其他语言的支持?请记住,JMockit 项目从未打算支持 JVM(即,不是像 Dalvik 之类的东西)和 Java 语言以外的任何东西。