C# TestMethod - асинхронный <ActionResult> Index()
Я новичок в модульном тестировании и относительно плохо знаком с C#. Не отличная комбинация! Я смотрел на подобные вопросы на этом форуме и пробовал решения безуспешно. В моем домашнем контроллере я определил следующий метод. Как мне написать [MethodTest] для асинхронной задачи?
**** Домашний контроллер ***
public async Task<ActionResult> Index()
{
var userId = Request.IsAuthenticated ? HttpContext.User.Identity.GetUserId() : null;
var thumbnails = await new List<ThumbnailModel>().GetPropertyThumbnailsAsync(userId);
var count = thumbnails.Count() / 4;
var model = new List<ThumbnailAreaModel>();
for (int i = 0; i <= count; i++)
{
model.Add(new ThumbnailAreaModel
{
Title = i.Equals(0) ? "My Content" : string.Empty,
Thumbnails = thumbnails.Skip(i * 4).Take(4)
});
}
return View("Index", model);
}
[TestMethod()]
public void Index()
{
// Arrange
// Validate model state end
// Act
ViewResult result = HomeController.Index() as Task<ActionResult>;
//Assert
Assert.IsNotNull(result);
}
Если кто-то может помочь или указать мне правильное направление, я был бы благодарен.
С уважением, Фил
1 ответ
Вы можете объявить свой TestMethod
async
[TestMethod]
public async Task Index()
{
// Arrange
// Validate model state end
// Act
ViewResult result = await HomeController.Index();
//Assert
Assert.IsNotNull(result);
}