栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用MongoDB进行单元测试

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用MongoDB进行单元测试

正如sbridges在这篇文章中所写的那样,不拥有专门的服务(有时也称为存储库或DAO)是一个坏主意,该服务会从逻辑中抽象出数据访问权限。然后,您可以通过提供DAO的模拟来测试逻辑。

我要做的另一种方法是创建一个Mongo对象的Mock(例如PowerMockito),然后返回适当的结果。这是因为您不必测试数据库是否可以在单元测试中工作,但是更多的时候您应该测试是否向数据库发送了正确的查询。

Mongo mongo = PowerMockito.mock(Mongo.class);DB db = PowerMockito.mock(DB.class);DBCollection dbCollection = PowerMockito.mock(DBCollection.class);PowerMockito.when(mongo.getDB("foo")).thenReturn(db);PowerMockito.when(db.getCollection("bar")).thenReturn(dbCollection);MyService svc = new MyService(mongo); // Use some kind of dependency injectionsvc.getObjectById(1);PowerMockito.verify(dbCollection).findOne(new BasicDBObject("_id", 1));

这也是一种选择。当然,模拟的创建和相应对象的返回仅作为上面的示例进行了编码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430964.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号