正如您正确指出的,您得到NPE是因为FindIterable为null。你需要嘲笑它。模拟它并不那么简单,因为它使用了...
除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库...
在遍历Iter的某些方法时我相信你必须做这样的事情。FindIterable iterable = mock(FindIterable.class);MongoCursor cursor = mock(MongoCursor.class);Document doc1= //create dummy document;Document doc2= //create dummy document;when(collection.find(dbObj)).thenReturn(iterable);when(iterable.iterator())....
方法:public EmplInfo getMetaData(String objectId) { objectId = new StringBuffer(objectId).reverse().toString(); try{ BasicDBObject whereClauseCondition = getMetaDataWhereClause(objectId); EmplInfo emplinfo= new EmplInfo (); emplinfo.set_id(objectId); FindIterable<Document> cursorPersonDoc = ...