mongodb + mockito不能一起工作?

时间:2011-11-04 22:52:22

标签: java mongodb mockito

我正在尝试在我的java代码中为mongodb设置模拟,我得到以下异常:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
DBCursor$$EnhancerByMockitoWithCGLIB$$fc4f0e22 cannot be returned by getOptions()
getOptions() should return int

生成此代码的代码行是:

when(col.find(query)).thenReturn(cursor);

其中col是模拟的DBCollection,查询是模拟的DBObject,而游标是模拟的DBCursor。

我发现以下非常含糊但可能相关的问题描述:

http://osdir.com/ml/mongodb-user/2010-08/msg02102.html

1 个答案:

答案 0 :(得分:4)

刚发现问题,find(DBObject obj)方法在DBCollection中是最终的:

http://grepcode.com/file/repo1.maven.org/maven2/org.mongodb/mongo-java-driver/2.1/com/mongodb/DBCollection.java

PowerMock最终解决了我的问题,因为它允许模拟最终方法。