Как вы можете издеваться над сервисом кэширования, которая, в свою очередь, использует Hybridcache? ⇐ C#

Место общения программистов C#
Anonymous
Как вы можете издеваться над сервисом кэширования, которая, в свою очередь, использует Hybridcache?

Сообщение Anonymous »

У меня есть фабричный класс, который скажем, ради аргументов возвращает автомобиль: < /p>
public class CarFactory : ICarFactory
{
private const string carKey = "MyCarKey";

private readonly ICarDetailsRepository _carRepo;
private readonly ICachingService _cachingService;

public CarFactory(ICarDetailsRepository carRepo, ICachingService cachingService)
{
_carRepo = carRepo;
_cachingService = cachingService;
}

public async Task GetCarDetailsAsync(Guid carId)
{
return await _cachingService.GetOrCreateAsync(carId, carKey, async cancel =>
{
return await GetCarDetailsByCarIdAsync(carId, cancel);
});
}

private async Task GetCarDetailsByCarIdAsync(Guid carId, CancellationToken token)
{
return await _carRepo.GetCarDetailsAsync(carId, token);
}
}

На этой фабрике используется CachingService , который, в свою очередь, является простой оберткой, а не HybridCache, с одним небольшим настройкой в ​​том, что Carid и Carkey объединяются вместе, чтобы фактически сформировать ключ кеша. Я хотел бы знать, как я могу это проверить это? Я специально хочу проверить, что _carrepo.getCardetailSasync (carid) вызывается, когда кэш в настоящее время не имеет кэшированного значения. Я смог создать тест, который проверяет значения, что ожидается, издевавшись от _cachingservice.getorcreateasync () , чтобы вернуть картисты , но не уверен, как ее издеваться, чтобы он затем вызовал фанк.public async Task GetOrCreateAsync(Guid id, string key, Func funcToGetItem)
{
return await _hybridCache.GetOrCreateAsync(CreateKeyWithPrefix(id, key), funcToGetItem);
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ybridcache

Вернуться в «C#»