Как понять почему тесты не отрабатывают?
От: peer  
Дата: 06.07.22 14:18
Оценка:
Есть такой нехитрый код в контроллере

public class CarController : CarControllerBase
{
        private readonly IFeatureGetCarById _featureGetCarById;       

        public CarController (IFeatureGetCarById featureGetCarById)
        {
            _featureGetCarById= featureGetCarById;
        }

   public async Task<IActionResult> GetCarById(
            CancellationToken cancellationToken,
            [Required] Guid carId,
            int? version,
            [FromServices] IFeatureGetCarById featureGetCarById)
{
    return version.HasValue ? 
                Ok(await featureGetCarById.GetCarByIdForVersion(carId, version.Value, cancellationToken)) : 
                Ok(await featureGetCarById.GetCarByIdAsync(carId, cancellationToken));
}



и есть такой код в тесте.
Тест заходит в метод контроллера GetCarById но внутрь GetCarByIdForVersion или GetCarByIdAsync уже не заходит.
В ошибку не падает,возвращает просто null и 200
Как понять в чем проблема?
Есть подозрение что надо мокать еще внутри сервиса FeatureGetCarById что в конструктор инжектится.
А там среди прочих сервисов инжектится еще и DbContext.


    var mockIFeatureGetCarById  = new Mock<IFeatureGetCarById>();            
            
            CancellationToken cancellationToken = new CancellationToken();
            Guid carId = new Guid("1018917A-FDF1-EC11-A07B-A4C3F063C82D");
            int version = 2;

            mockFeatureGetCarById.Setup(feature => feature.GetCarByIdForVersion(carId, version, cancellationToken));
            mockFeatureGetCarById.Setup(feature => feature.GetCarByIdAsync(carId, cancellationToken));

            
            var carController = new CarController(mockIFeatureGetCarById.Object);
            
            var result = await carController.GetCarById(cancellationToken, carId , version, mockIFeatureGetCarById.Object);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.