Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Azure DocDB为单元测试创建ResourceResponse对象_C#_Unit Testing_Azure_Azure Cosmosdb_Microsoft Fakes - Fatal编程技术网

C# 使用Azure DocDB为单元测试创建ResourceResponse对象

C# 使用Azure DocDB为单元测试创建ResourceResponse对象,c#,unit-testing,azure,azure-cosmosdb,microsoft-fakes,C#,Unit Testing,Azure,Azure Cosmosdb,Microsoft Fakes,我正在使用MicrosoftFakes单元测试框架测试一些对DocumentDB数据库进行查询的方法 DocumentClient类有几种方法用于对DocDB进行查询(例如createdocumentsync()),这些方法返回封装在任务中的resourcesponse对象 为了单元测试的目的,我想使用垫片,但是返回类型似乎没有公共构造函数,尽管在中提到了一个 下面是我想要完成的一个极其简化的版本: [TestMethod] public async Task MyTest() { us

我正在使用MicrosoftFakes单元测试框架测试一些对DocumentDB数据库进行查询的方法

DocumentClient
类有几种方法用于对DocDB进行查询(例如
createdocumentsync()
),这些方法返回封装在
任务中的
resourcesponse
对象

为了单元测试的目的,我想使用垫片,但是返回类型似乎没有公共构造函数,尽管在中提到了一个

下面是我想要完成的一个极其简化的版本:

[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);
    }
}
[TestMethod]
公共异步任务MyTest(){
使用(ShimsContext.Create()){
//安排
var docClient=newdocumentclient(新Uri(“myUri”),“myKey”);
ShimDocumentClient.AllInstances.CreateDocumentSyncuriObjectRequestOptions布尔=
(DocumentClient实例、Uri、对象文档、RequestOptions选项、bool disableAutomaticGeneration)=>
{
ResourceResponse=new ResourceResponse();/“错误:不包含接受零参数的构造函数”
返回响应;
};
//表演
var response=await docClient.CreateDocumentAsync(新Uri(“myCollectionUri”),“myDoc”);
//断言
Assert.AreEqual(response.StatusCode、HttpStatusCode.OK);
}
}

如何创建一个自定义的
ResrouceResponse
对象以在填充方法中返回?

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

请确认您是否正在使用SDK版本1.10,好吗?如果没有,请下载最新的SDK。@h0n我正在使用SDK的v1.10。你知道有没有解决这个问题的标准方法吗?我用v1.10进行了测试,在不传递任何参数的情况下更新ResourceResponse类是没有问题的。您可以做的一件事是检查packages.config以确保SDK版本为1.10.0@事实证明你是对的。我的解决方案中的不同项目中有不同版本的SDK。确保1.10版解决了这个问题。谢谢。@h0n如果您想将其作为答案,我将投票表决。请您确认是否使用SDK 1.10版?如果没有,请下载最新的SDK。@h0n我正在使用SDK的v1.10。你知道有没有解决这个问题的标准方法吗?我用v1.10进行了测试,在不传递任何参数的情况下更新ResourceResponse类是没有问题的。您可以做的一件事是检查packages.config以确保SDK版本为1.10.0@事实证明你是对的。我的解决方案中的不同项目中有不同版本的SDK。确保1.10版解决了这个问题。谢谢。@h0n如果你想把它写下来作为答案,我将投票表决。我在java项目的pom文件中有最新版本的documentdb,但我没有访问公共构造函数的权限。我在java项目的pom文件中有最新版本的documentdb,但我没有访问公共构造函数的权限