Поток моего 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
?
Обновление:
Я думаю, что я должен проверить сервисный слой индивидуально! не с контроллера?