用于类数据类型的EasyMock匹配器

我正在做这个和easymock语法的噩梦:

public void foo(Class clazz); EasyMock.expects(object.foo(EasyMock.isA(???))); 

如果我的参数是String.class,我该怎么办? 我最初想:

EasyMock.isA(((Class)(String.class)).getClass())

然而,当我调用foo(String.class)时,我得到:

java.lang.IllegalStateException: missing behavior definition for the preceding method call:

您正在尝试validation将在运行时擦除的generics类型。

改为使用捕获对象:

 Capture> classCapture = new Capture>(); EasyMock.expect(object.foo(EasyMock.capture(classCapture))); // ... other test setup ... Assert.assertEquals(classCapture.getValue(), String.class); 

如果您不想使用Capture,我认为以下内容也可以作为expect语句:

 EasyMock.expects(object.foo(EasyMock.isA(String.class.getClass())));