在TestNG中模拟枚举类(对解决方案的理解)

时间:2015-11-19 14:47:27

标签: java unit-testing enums testng

我需要模拟枚举类。 (在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); "如果它是枚举和最终? 在我开始搜索结果之前我遇到了这个问题,但每个答案看起来都一样。 我错过了什么?

0 个答案:

没有答案