我正在做这个和easymock语法的噩梦:
public void foo(Class<?> clazz);
EasyMock.expects(object.foo(EasyMock.isA(???)));
如果我的参数是String.class,我该怎么办?我最初想:
EasyMock.isA(((类<?>)(String.class))的getClass().)
然而,当我调用foo(String.class)时,我得到:
java.lang.IllegalStateException:前面方法调用缺少行为定义:
解决方法:
您正在尝试验证将在运行时擦除的泛型类型.
改为使用捕获对象:
Capture<Class<?>> cla*ture = new Capture<Class<?>>();
EasyMock.expect(object.foo(EasyMock.capture(cla*ture)));
// ... other test setup ...
Assert.assertEquals(cla*ture.getValue(), String.class);