我们正在考虑切换到Spring 3.0,并遇到Spring 3.0,EasyMock和Java Generics的交叉问题。
在一处,我们模拟了Spring 3.0 AbstractBeanFactory,特别是此方法:
public Class<?> getType(String name) throws NoSuchBeanDefinitionException { ... }
在Spring的早期版本中,这返回一个非泛型,一切都很好。但是,使用泛型时,我们遇到了麻烦:
expect(mockBeanFactory.getType(CLASS_NAME)).andReturn(SOME_CLASS);
因为
getType
返回Class<?>
,所以andReturn
需要Class<?>
作为参数,这根本无法正常工作。有已知的解决方法吗?
最佳答案
我之前遇到过Mockito这样的问题。我不确定为什么会这样。您可以将Expect(..)参数转换为非泛型类类型ala
expect((Class) mockBeanFactory.getType(CLASS_NAME)).andReturn(SOME_CLASS);
然后,您将得到一个警告,可以根据需要取消显示。这不是一个非常优雅的解决方案;我将花更多时间看一下。