问题描述
我正在编写一些测试以确保我收到 200 状态,即使没有数据存在。我可以通过我的测试连接到后端,但不知道如何读取数据,然后在 Assert 语句中使用数据来确认状态代码为 200。
public void DataControllerTest_NoData(long dataId)
{
var uri = "http://localhost:8311/api/Data?columnId=";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri + dataId);
request.Headers.Add("Authorization","Bearer " + token);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
try
{
response = (HttpWebResponse)request.GetResponse();
statusCode = response.StatusCode.ToString();
}
catch (WebException we)
{
statusCode = ((HttpWebResponse)we.Response).StatusCode.ToString();
}
Assert.AreEqual(HttpStatusCode.OK,statusCode);
response.Close();
}
解决方法
据我所知,如果您看到错误,您希望通过如下所示的小更正调整代码来找到状态代码。
public void DataControllerTest_NoData(long dataId)
{
var uri = "http://localhost:8311/api/Data?columnId=";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri + dataId);
request.Headers.Add("Authorization","Bearer " + token);
request.Method = "GET";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response = (HttpWebResponse)request.GetResponse();
statusCode = response.StatusCode.ToString();
response.Close();
}
catch (WebException we)
{
statusCode = ((HttpWebResponse)we.Response).StatusCode.ToString();
}
Assert.AreEqual(HttpStatusCode.OK,statusCode);
}
如果要查找异常文本的代码,请使用以下代码
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response = (HttpWebResponse)request.GetResponse();
statusCode = response.StatusCode.ToString();
response.Close();
}
catch (WebException we)
{
string resultError = we.Message;
}