如何模拟MongoDB对象来测试我的数据模型?

Chr*_*ies 6 moq mongodb c#-4.0 mongodb-.net-driver

我正在使用以下逻辑(MOQ)来尝试模拟MongoDB csharp驱动程序对象:

var svr = new Mock<MongoServer>(new MongoServerSettings());
var db = new Mock<MongoDatabase>(svr.Object, new MongoDatabaseSettings("hf_test", 
new MongoCredentials("hf_test", "hf_pass"), GuidRepresentation.Standard,
                                                 SafeMode.False, false));
Run Code Online (Sandbox Code Playgroud)

当我调用db.Object时,MOQ尝试创建我的模拟MongoDatabase的实例,但它失败并带有空引用异常.

注意:我正在考虑创建一个IMongoCollection接口,并将MongoCollection包装在它的实例中.然后,我可以简单地嘲笑......但这似乎是一大堆不必要的工作.

Chr*_*ies 1

我最终创建了自己的接口,这些接口基本上是 Mongo 对象之上的浅层包装器。我可以模拟这些接口,并至少测试我的 DAL 查询中是否有正确的索引和过滤器。