0
我正在使用Microsoft Fakes單元測試框架來測試一些對DocumentDB數據庫進行查詢的方法。爲使用Azure DocDB進行單元測試創建ResourceResponse對象
DocumentClient
類有幾種查詢DocDB的方法(如CreateDocumentAsync()
),它們返回ResourceResponse<Document>
對象包裝在Task<T>
中。
我想爲單元測試目的填充CreateDocumentAsync()
,但返回類型ResourceResponse<T>
似乎沒有公共構造函數,儘管提到了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>
對象在勻方法返回?
請問您是否確認您是否使用SDK版本1.10?如果沒有,請下載最新的SDK。 – h0n
@ h0n我正在使用v1.10的SDK。你知道有沒有解決這個問題的標準方法? – eigenchris
我使用v1.10進行了測試,並且沒有傳入任何參數就沒有發現新的ResourceResponse類。你可以做的一件事是檢查你的packages.config以確保SDK版本是1.10.0。 –
h0n