Как смоделировать репозиторий и разрешить сервис в тесте Xunit - PullRequest
0 голосов
/ 15 сентября 2018

Поток моего WebAPI:

Контроллер (служба DI) -> Служба (хранилище DI) -> Репозиторий (DI UnitOfWork)

Теперь я хочу протестировать метод в моем контроллере и проверить, вызывается ли метод в репозитории!

Контроллер:

    public KitController(
    IKitService _kitService)
    {
        kitService = _kitService;
    }

    [HttpPost]
    [Route("[action]")]
    public async Task<IActionResult> AddOrUpdateKit([FromBody]KitViewModel model)
    {
        try
        {
            var entity = await kitService.AddOrUpdateKit(model);
            return Ok(entity);
        }
        catch (Exception ex)
        {
            return BadRequest(ex.Message);
        }
    }

Услуги

    private readonly IKitRepository kitRepository;
    public KitService(IKitRepository _kitRepository)
    {
        kitRepository = _kitRepository;
    }
 public async Task<Kit> AddOrUpdateKit(KitViewModel model)
    {
        var entity = kitRepository.KitFirstOrDefault(q => q.KitId == model.KitId);
        if (entity == null)
        {
            await kitRepository.AddKit(new LabDomainModels.Lab.Kit()
            {
                KitName = model.KitName,
                ActivationDate = model.ActivationDate,
                ExpirationDate = model.ExpirationDate,
                Brand = model.Brand
            });
        }
        else
        {
            entity.KitName = model.KitName;
            entity.ActivationDate = model.ActivationDate;
            entity.ExpirationDate = model.ExpirationDate;
            entity.Brand = model.Brand;
            kitRepository.UpdateKit(entity);
        }
        return entity;
    }

и я хочу проверить, вызывается kitRepository.AddKit(...) или нет!

Как мне установить макет kitRepository?

Обновление:

Я думаю, что я должен проверить сервисный слой индивидуально! не с контроллера?

...