Здравствуйте, я пытаюсь запустить некоторые тесты для этого метода контроллера, но я изо всех сил пытаюсь проверить представление, вот мой класс контроллера.
public class StockController : Controller
{
private readonly IStockService _stockService;
public StockController(IStockService stockService)
{
_stockService = stockService;
}
// GET: Stock
public async Task<IActionResult> Index()
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
IEnumerable<StockDto> stocks = null;
try
{
stocks = await _stockService.GetStockAsync();
}
catch (HttpRequestException)
{
stocks = Array.Empty<StockDto>();
}
return View(stocks.ToList());
}
}
Вот метод тестирования в MS Test Project для контроллера запаса у меня есть Arrange и Act , работающие нормально, но для Asserts есть красная линия на 'ViewResult', и я Я не уверен, почему.
[TestMethod]
public async Task ReturnIndexMethod()
{
//Arrange
var controller = new StockController(new FakeStockService());
//Act
var result = await controller.Index();
//Assert
Assert.IsNotNull(result);
var AResult = result as ViewResult;
Assert.IsNotNull(AResult);
var stockResult = AResult.Value as IEnumerable<StockDto>;
Assert.IsNotNull(stockResult);
}
Также здесь есть FakeStockService
, который предоставит данные пробного теста на тот случай, если люди захотят их увидеть.
public class FakeStockService : IStockService
{
private readonly IEnumerable<StockDto> _stock = new List<StockDto>
{
new StockDto { Id = 1, Name = "asfdaf", Description = "afsdfsfdsda", Price = 5000 }
};
public Task<IEnumerable<StockDto>> GetStockAsync()
{
return Task.FromResult(_stock);
}
}
Буду признателен за любую помощь или предложения, я просто потерял здесь после попытки все остальное.