我正在爲我們開發的一些Web服務編寫單元測試。我有一個[TestMethod]作爲休息發佈到web服務。很好的工作,但它不會觸發我創建的事件處理方法。通過調試,我注意到在執行testmethod之後,事件處理程序正在獲取排除項。它去testcleanup。Webclient UploadStringCompleted事件未被調用
有沒有人遇到過這個問題?下面的代碼
[TestMethod,TestCategory("WebServices")]
public void ValidateWebServiceGetUserAuthToken()
{
string _jsonstringparams =
"{ \"Password\": \"xxx\", \"UserId\": \"xxxx\"}";
using (var _requestclient = new WebClient())
{
_requestclient.UploadStringCompleted += _requestclient_UploadStringCompleted;
var _uri = String.Format("{0}?format=Json", _webservicesurl);
_requestclient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
_requestclient.UploadStringAsync(new Uri(_uri), "POST", _jsonstringparams);
}
}
void _requestclient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
if (e.Result != null)
{
var _responsecontent = e.Result.ToString();
Console.WriteLine(_responsecontent);
}
else
{
Assert.IsNotNull(e.Error.Message, "Test Case Failed");
}
}
工程!謝謝。兩種方式都有效。我正在考慮Async方法,但沒有想到ManualResetEvent。感謝您的答覆! – Don 2014-10-02 20:16:37