对于jUnit目的,使用Powermockito,我正在尝试创建一个TestUtility类,从配置文件创建模拟,如:
<automock>
<mock id="1" class="com.aaa.MyClass">
<method name="method1">
<return type="String">ABC</return>
</method>
<method name="method2">
<return type="boolean">false</return>
</method>
</mock>
</automock>
我希望我的TestUtility自动创建定义的模拟。它应该等同于:
MyClass mock = PowerMockito.mock(MyClass.class);
PowerMockito.when(mock.method1()).thenReturn("ABC");
PowerMockito.when(mock.method2()).thenReturn(false);
加载MyClass后,我在创建模拟时遇到异常:
Class clazz = ClassLoader.getSystemClassLoader().loadClass("com.aaa.MyClass");
Object mock = PowerMockito.mock(clazz);
>> java.lang.ClassCastException: com.aaa.MyClass$$EnhancerByMockitoWithCGLIB$$8f25c857 cannot be cast to org.mockito.cglib.proxy.Factory
我的目标是拥有一种自动管理模拟的框架,并防止编写这么多PowerMockito.when(...)。thenReturn(...)或PowerMockito.whenNew(...)当我'我处理复杂的课程。
有没有办法阻止此异常或任何变通方法从其类名(作为String)模拟对象?
提前致谢。