我正在編寫單元測試用例,我必須根據所需的參數返回多個響應。當我嘗試下面的代碼時它的工作正常。無法使用NUnit模擬的setupSequence的多個返回
_mockClient.SetupSequence(c => c.HttpGet(It.IsAny<string>(), It.IsAny<Dictionary<string, string>>()))
.Returns(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(_bucketResponseJson) })
.Returns(new HttpResponseMessage());
但是,當我的響應取決於傳遞參數我使用以下代碼與lambda表達式。
_mockClient.SetupSequence(c => c.HttpGet(It.IsAny<string>(), It.IsAny<Dictionary<string, string>>()))
.Returns(((string url, Dictionary<string, string> headers) =>
{
return _objectStoreCache[headers[HeaderValue]] as HttpResponseMessage;
})).Returns(new HttpResponseMessage());
這給了我編譯錯誤
「無法轉換lambda表達式類型 'System.Net.Http.HttpResponseMessage',因爲它不是委託 型」
如果有什麼錯誤?什麼是所需的功能?提供更多詳細信息 – Nkosi
即使沒有您的問題的基本描述,我也看不出我們可以提供什麼幫助。 – Amy
修改了這個問題,請參閱更多詳細信息。 –