У меня есть фабричный класс, который скажем, ради аргументов возвращает автомобиль: < /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
Как вы можете издеваться над сервисом кэширования, которая, в свою очередь, использует Hybridcache? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как текущая очередь, очередь отправки и целевая очередь взаимодействуют друг с другом в GCD?
Anonymous » » в форуме IOS - 0 Ответы
- 102 Просмотры
-
Последнее сообщение Anonymous
-