Я пытаюсь написать несколько автоматических комплексных тестов для моих контроллеров MVC, поскольку у нас есть строгие требования к тестированию, мне недостаточно просто протестировать сервисы.
У меня есть контроллер сМетод:
[HttpGet("myPath")]
public async Task<ActionResult<IEnumerable<Foo>>> GetFoos()
{
Return Ok( _service.GetFoos());
}
Я хотел бы проверить это следующим образом:
Public Async Task TestController(){
…
Var result=await Client.GetAsync("/myPath"); var jsonFromResponse = await
response.Content.ReadAsStringAsync();
var myList=(IEnumerable<Foo>)JsonConvert.DeserializeObject(jsonFromResponse);
// PERFORM ASSERTION on myList
}
Однако это исключение
---> Система. InvalidCastException: Невозможно привести объект типа 'Newtonsoft.Json.Linq.JArray' к типу 'System.Collections.Generic.List`1 [Foo]'.
Мой возвращенный результат JSON кажется ОК, этоэто:
[
{
"type": 1,
"study": {
"id": 96,
"createdDate": "2017-10-10T00:00:00",
"updatedDate": null,
"X": null
},
"id": 262,
"createdDate": "2019-10-14T07:36:40.104368",
"updatedDate": "2019-10-14T07:36:40.118568"
},
{
"type": 1,
"study": {
"id": 96,
"createdDate": "2017-10-10T00:00:00",
"updatedDate": null,
"X": null
},
"id": 263,
"createdDate": "2019-10-14T07:36:40.147418",
"updatedDate": "2019-10-14T07:36:40.160704"
},
…
]