【问题标题】:Can JMockit work with scala?JMockit 可以与 scala 一起使用吗?
【发布时间】: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 在字节码中使用的各种技巧。

标签: scala junit jmockit


【解决方案1】:

JMockit 在 JVM 上不支持 Scala 或除 Java 之外的任何语言

https://github.com/jmockit/jmockit1/pull/358

最后,过去已经有人要求增加对 其他 JVM 语言。我记得 Scala (ScalaMock)、Extend 和 科特林。如果 Groovy 支持被接受,如何拒绝对其他的支持 语言?请记住,JMockit 项目从未打算 支持 JVM 以外的任何东西(即,不是像 Dalvik 这样的东西)和 Java 语言。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多