Я столкнулся с проблемой при чтении с использованием Content.ReadAsAsync
. Посмотрите на мой код.Content.ReadAsAsync всегда дает null
private HttpResponseMessage _responseMessage;
_responseMessage = UnitTestHelper.Get(string.Format("api/StudentController/Get/?StartDate={0}&EndDate={1}", DateTime.Now, DateTime.Now));
Assert.IsTrue(_responseMessage.IsSuccessStatusCode);
Assert.IsTrue(_responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result.Count > 0);
var auditData = _responseMessage.Content.ReadAsStringAsync().Result;
_responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
Результат указанного кода:
Он успешно сделать после вызова получает результат обратно.
Result.Count показывает 1.
ReadAsStringAsync показывает данные в следующем формате.
[{\"User\":\"Test\",\"Location\":\"MyCountry\",\"Class\":\"Grade1\",\"Time\":\"2016-07-06T07:26:11.183\",\"SchoolName\":\"ABC School System\"}]
Последняя строка дает null. Я ожидаю список здесь.
Моя проблема.
Следующая строка кода всегда показывает значение null. В то время как я ожидаю иметь список.
_responseMessage.Content.ReadAsAsync<List<StudentModel>>().Result;
Почему? Что здесь не так?
Посмотрите здесь http://stackoverflow.com/questions/14205590/await-a-async-void-method-call-for-unit-testing –
Вы задаетесь вопросом. Как вы можете получить доступ к 'Result.Count', если префиксный объект равен« null »? – Nkosi
снова посмотрите на вопрос. обновлено. – immirza