scala mock java enum

时间:2016-08-25 21:29:29

标签: java scala enums mocking

我在java中有以下枚举:

public enum MyEnum {
    INSTANCE;
    //do some other stuff
    public List<Long> getBlah(String input) {
        return something;
    }
}

以下是scala中的测试代码(为什么在scala中?因为使用MyEnum的实际代码在scala中)

import org.powermock.api.mockito.PowerMockito.mock
import org.powermock.modules.junit4.PowerMockRunner
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.reflect.Whitebox

@RunWith(classOf[PowerMockRunner])
@PrepareForTest(Array(classOf[MyEnum]))
class MyTest extends FunSuite {
    test("my test") {
        var myMock = mock(classOf[MyEnum])
        Whitebox.setInternalState(classOf[MyEnum], "INSTANCE", myMock)
        var result = MyEnum.INSTANCE.getBlah("input")
}
}

但我收到错误:

  

java.lang.IllegalArgumentException:不能继承最终类类   MyEnum

相同的测试代码适用于junit但不适用于scala。我怀疑它的scala具体。谁能指出这个错误?我认为RunWithPrepareForTest注释不起作用。

0 个答案:

没有答案