Java EasyMock和返回泛型类的方法
只是想知道如何使用EasyMock或PowerMock从方法中模拟Class类型的返回对象 我试图模拟这个接口方法的返回类型Java EasyMock和返回泛型类的方法,java,junit,tdd,powermock,easymock,Java,Junit,Tdd,Powermock,Easymock,只是想知道如何使用EasyMock或PowerMock从方法中模拟Class类型的返回对象 我试图模拟这个接口方法的返回类型 Class<T> getRootBeanClass(); 我收到了这个错误消息 java.lang.IllegalStateException: matcher calls were used outside expectations 非常感谢您的任何帮助anyObject()是一个参数匹配器 您可以使用它,以便EasyMock能够区分您提出的不同模拟规范
Class<T> getRootBeanClass();
我收到了这个错误消息
java.lang.IllegalStateException: matcher calls were used outside expectations
非常感谢您的任何帮助anyObject()
是一个参数匹配器
您可以使用它,以便EasyMock能够区分您提出的不同模拟规范。比如:
EasyMock.expect(mock.foo(eq("A"), anyObject()).andReturn(resultForA);
对
EasyMock.expect(mock.foo(eq("B"), anyObject()).andReturn(resultForB);
返回的对象必须是真实的现有对象(可以模拟,也可以不模拟)。但是anyObject()
不会为您创建对象
EasyMock无法为您生成泛型-因此需要强制转换,例如:
Class<Foo> foo = (Class<Foo>) mock(Class.class)
Class foo=(Class)mock(Class.Class)
但这在本例中不起作用-因为java.lang.Class是最终的!EasyMock不能模拟期末考试!你需要PowerMock,或者(我的建议)Mockito的最新版本
如果您选择Mockito:请阅读他们的文档-因为您必须启用最终类的模拟-到目前为止,这是一项实验性功能。仅供记录:您可能希望删除不再需要的旧注释。。。
Class<Foo> foo = (Class<Foo>) mock(Class.class)