我有一个奇怪的问题,EasyMock的EasyMock的 - 随机测试失败 - 匹配器预计
这就是我正在做的调用,它抛出一个IllegalStateException : Matcher expected
预期
expect(this.mock.expectedOperation(gt(0l), MyClass.class)).andReturn(createClassObject());
如果我更换了与上述电话
expect(this.mock.expectedOperation(gt(0l), createClass(MyClass.class))).andReturn(createClassObject());
@SuppressWarnings("unchecked")
public static <T> Class<T> createClass(Class<T> clazz)
{
return (Class<T>) EasyMock.anyObject();
}
大多数时候我没有得到一个错误,但有时我做的。它保持IllegalStateException : Matcher expected ..
有时我得到IllegalStateException : 2 Matchers expected 1 recorder
错误这样做的:
MyClass object = createClassObject();
expect(this.mock.expectedOperation(anyLong(), anyLong()).andReturn(object);
public MyClass createClassObject() {
// Actually sets properties and then returns
return new MyClass();
}
但我做到这一点,当它运行:
expect(this.mock.expectedOperation(anyLong(), anyLong()).andReturn(createClassObject());
在上面的例子中,有时前者运行和后者失败。
有时失败:
MyClass object = createClassObject();
expect(this.mock.expectedOperation(1, MyClass.class)).andReturn(object);
我有四重检查复位,重播,通话验证。 这些测试有时会运行,有时会失败。
如果我运行我的单元测试,它至少会在上述任何一种情况下失败一次。为什么?我如何让它运行?
编辑:我使用EasyMock的3.1版和
MockedClass mock = EasyMock.createMock(MockedClass.class);
测试中涉及的任何线程? – 2013-02-12 09:17:58
不是。没有线程。 – 2013-02-12 09:18:31