我正在尝试模拟一个返回ResourceResponse<Document>的调用,但是我无法实例化该类型。是否有可以实例化它的工厂类或其他可以实例化的方法?

编辑
var response = new ResourceResponse<Document>();

最佳答案

Microsoft.Azure.DocumentDB(1.10.0)atm的最新稳定版本添加了2个用于模拟目的的构造函数。

https://msdn.microsoft.com/en-us/library/azure/dn799209.aspx#Anchor_2

编辑

使用Moq,您可以执行以下操作:

Mock<IDocumentClient> documentClient = new Mock<IDocumentClient>();
documentClient
    .Setup(dc => dc.ReplaceDocumentAsync(UriFactory.CreateDocumentUri("database", "collection", "id"), object, null) // last parameter are RequestOptions, these are null by default
    .Returns(Task.FromResult(new ResourceResponse<Document>()));

这样,我可以检查是否正在调用documentClient上的方法,如果要影响文档中返回的内容,则必须创建一个文档,然后再创建该文档的ResourceResponse。就像是:
var document = new Document();
document.LoadFrom(jsonReader); // the json reader should contain the json of the document you want to return
Mock<IDocumentClient> documentClient = new Mock<IDocumentClient>();
documentClient
    .Setup(dc => dc.ReplaceDocumentAsync(UriFactory.CreateDocumentUri("database", "collection", "id"), object, null) // last parameter are RequestOptions, these are null by default
    .Returns(Task.FromResult(new ResourceResponse<Document>(document)));

关于c# - 如何实例化ResourceResponse <Document>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33262541/

10-17 02:35