scala objectのMock

テストコードでscalaのobjectをモック化したい。

モック化したいobjectは以下。このクラスはJavaからも呼ぶため、class宣言もしている。

class Boo
object Boo {
val log = LogFactory.getLog(this.getClass())
def foo = {
log.debug("Boo#foo called")
true
}
}
これをモック化するコード
@MockClass(realClass=classOf[Boo])
object BooMock {
val log = LogFactory.getLog(this.getClass())
@Mock def foo = {
log.debug("BooMock#foo called")
false
}
}
テストコード
class JMockitTest {
val log = LogFactory.getLog(this.getClass())

@Test def foo {
setUpMocks(classOf[BooMock])
log.debug(Boo.foo)
}
}
これを実行しても、
DEBUG (JMockitTest.scala:15) Boo#foo called
DEBUG (JMockitTest.scala:51) true
となって、モックが呼ばれない。

一方で、テストコードをJavaにしてみる。

public class JMockit2Test {
private static Log log = LogFactory.getLog(JMockit2Test.class);

@Test public void foo() {
setUpMocks(BooMock.class);
log.debug(Boo.foo());
}
}
これを実行すると、
DEBUG (JMockitTest.scala:26) BooMock#foo called
DEBUG (JMockit2Test.java:25) false
となって、モックが呼ばれるようになる。scalaのテストコードではobjectをモック化できないが、Javaのテストコードではできる。解決方法が今のところみつからない。