使用Moq模拟Mongo,MongoDatabase.GetCollection和MongoCollection

时间:2015-02-13 09:31:09

标签: mongodb nunit moq

任何人都可以帮我模拟MongoDatabase的db.GetCollection以使用Moq返回模拟数据

//returns MongoDatabase instance
var db = mongoConnector.Connect();

//Return Collection on the type Entity being passed
db.GetCollection<Entity>("CollectionName").AsQueryable().ToList();

1 个答案:

答案 0 :(得分:0)

单元测试MongoDatabase听起来有点矫枉过正。我强烈建议您为数据访问层进行数据相关的集成测试。使用集成测试测试核心CRUD代码,并在每次测试运行后清理/引导数据库。在拆卸时清理数据库很重要,因为每个测试都应该独立于其他测试。

MOQ可用于测试业务逻辑层,您可以在其中模拟数据访问层并返回预期数据,而不是访问数据库。