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);
リセット、リプレイ、検証の呼び出しを 4 回チェックしました。これらのテストは実行されることもあれば、失敗することもあります。
単体テストを実行すると、上記の状況のいずれかで少なくとも 1 回ランダムに失敗します。なんで?どうすれば実行できますか?
編集:EasyMockバージョン3.1を使用しています
MockedClass mock = EasyMock.createMock(MockedClass.class);