gpt4 book ai didi

c# - 使用 Azure DocDB 创建用于单元测试的 ResourceResponse 对象

转载 作者:行者123 更新时间:2023-12-03 01:08:31 25 4
gpt4 key购买 nike

我正在使用 Microsoft Fakes 单元测试框架来测试一些查询 DocumentDB 数据库的方法。

DocumentClient类有几种用于查询 DocDB 的方法(例如 CreateDocumentAsync() ),它们返回 ResourceResponse<Document>包裹在 Task<T> 中的物体.

我想填充 CreateDocumentAsync() 出于单元测试目的,但是返回类型 ResourceResponse<T> ,似乎没有公共(public)构造函数,尽管 the documentation 中提到了一个。 .

我想要完成的事情的极其简化的版本在这里:

[TestMethod]
public async Task MyTest() {
using (ShimsContext.Create()) {
// Arrange
var docClient = new DocumentClient(new Uri("myUri"), "myKey");
ShimDocumentClient.AllInstances.CreateDocumentAsyncUriObjectRequestOptionsBoolean =
(DocumentClient instance, Uri uri, object document, RequestOptions options, bool disableAutomaticGeneration) =>
{
ResourceResponse<Document> response = new ResourceResponse<Document>(); // "error: does not contain a constructor that takes zero arguments"
return response ;
};

// Act
var response = await docClient.CreateDocumentAsync(new Uri("myCollectionUri"), "myDoc");

// Assert
Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
}
}

如何创建自定义ResrouceResponse<Document>要在 shimed 方法中返回的对象?

最佳答案

如评论中所述。 v1.10 的 SDK 支持 ResourceResponse 构造函数不带参数。项目解决方案中的packages.config应显示项目正在使用的DocumentDB SDK的版本:

关于c# - 使用 Azure DocDB 创建用于单元测试的 ResourceResponse 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com