我在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具体。谁能指出这个错误?我认为RunWith
和PrepareForTest
注释不起作用。