从字符串(Java)创建动态模拟

时间:2015-04-13 07:52:34

标签: java string class junit mocking

对于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)模拟对象?

提前致谢。

0 个答案:

没有答案