次のGetOrSetメソッドをInMemoryCacheクラスでモックしようとしています。私のテストでMoq:ファンクションコールバックをパラメータとして使用してメソッドをモックする方法
public class InMemoryCache : ICacheService
{
public T GetOrSet<T>(string cacheKey, Func<T> getItemCallback) where T : class
{
T item = MemoryCache.Default.Get(cacheKey) as T;
if (item == null)
{
item = getItemCallback();
DateTime expireDateTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 4, 0, 0).AddDays(1);
MemoryCache.Default.Add(cacheKey, item, expireDateTime);
}
return item;
}
}
、私は
var mockCacheService = new Mock<ICacheService>();
mockCacheService.Setup(x => x.GetOrSet..
を持っている誰かが私にはドットを埋める手助けすることはできますか?私はこのような呼び出しを行う際に
は、私はそれはそれはあなたがテストしたいのかによって異なり
var countries = _cacheService.GetOrSet("CountriesDictionary",() => webApiService.GetCountries())
希望する動作は何ですか? 'It.IsAny>()'を使ってください。また、メソッドに渡された値がnullの場合にはnullチェックを行うべきです。 –
Nkosi
@Nkosi上記の更新されたポストを参照してください。 – billboard