我需要模拟枚举类。 (在TestNG中使用Mockito和PowerMockito) 我正在寻找解决方案,结果我找到了许多类似的答案:
http://ambracode.com/index/show/285802
How to mock an enum singleton class using Mockito/Powermock?
mocking a singleton class How to mock a method in an ENUM class?
在每个提供的解决方案中,我需要添加@PrepareForTest注释并使用powermock进行模拟。
@PrepareForTest( MyEnum.class)
@Test
public void myTest() {
MyEnumClass mockInstance = PowerMockito.mock(MyEnumClass .class);
Whitebox.setInternalState(MyEnumClass.class, "INSTANCE", mockInstance);
PowerMockito.mockStatic(MyEnumClass.class);
//DoReturn/when and so on...
}
但是我仍然不明白它是如何工作的?如果我尝试,我会得到 java.lang.IllegalArgumentException:无法继承最终类类
我如何制作" MyEnumClass mockInstance = PowerMockito.mock(MyEnumClass .class); "如果它是枚举和最终? 在我开始搜索结果之前我遇到了这个问题,但每个答案看起来都一样。 我错过了什么?