我正在尝试模拟一个返回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/