如何解析传递的FilterDefinition参数

时间:2019-01-15 02:03:33

标签: mongodb mongodb-.net-driver

我正在对该类进行单元测试,该单元内部调用MongoDb驱动程序的FindAsync来检索文档。 对于每个要测试的方法,我想验证我方法中内置的FilterDefinition是否正确传递给MongoDB的FindAsync方法。

我已经设置了回调以使用以下代码捕获通过的过滤器:

var mockCursor = new Mock<IAsyncCursor<T>();    
var mockMongoDbCollectionClient = new Mock<IMongoCollection<T>>();
mockMongoDbCollectionClient.Setup(o => o.FindAsync(It.IsAny<FilterDefinition<T>(), It.IsAny<FindOptions<T>(), It.IsAny<CancellationToken>()))
                                   .Callback<FilterDefinition<T>, FindOptions<T>, CancellationToken>((f, o, t) =>
                                   {
                                       filter = f;
                                   })
                                   .ReturnsAsync(mockCursor.Object);

但是我不知道如何解析过滤器以验证它是否是预期的过滤器。 例如,如果要测试的方法中的过滤器是这样构建的:

var filter = Builders<T>.Filter.Eq("Type", "MyType")

我会在我的UT中检查通过的过滤器是否完全如上所述构建。

0 个答案:

没有答案