Я пытаюсь написать модульный тест, используя MSTest и Moq для метода, который использует метод расширения IMemoryCache. Ситуация:
public class ClassToTest
{
private IMemoryCache Cache { get; }
public ClassToTest(IMemoryCache cache)
{
Cache = cache;
}
public async Task<SomeType> MethodToTest(string key)
{
// Get is an extension method defined in Microsoft.Extensions.Caching.Memory
var ci = Cache.Get<CachedItem<T>>(key);
// Do stuff with cached item
}
}
Как я могу протестировать это?
До сих пор я пробовал:
[TestMethod]
public void TestMethodToTest()
{
IServiceCollection services = new ServiceCollection();
services.AddMemoryCache();
var serviceProvider = services.BuildServiceProvider();
var memoryCache = serviceProvider.GetService<IMemoryCache>();
ClassToTest testClass = new ClassToTest(memoryCache);
}
Это дает мне следующую ошибку: «IServiceCollection» не содержит определения для «AddMemoryCache», и не может быть найден доступный метод расширения «AddMemoryCache», принимающий первый аргумент типа «IServiceCollection» (вы пропустили директиву использования или сборку Справка?)".
Кто-нибудь знает, как провести модульное тестирование этого метода? Желательно без изменения самого метода. Есть ли стандартный способ сделать это? Любая помощь приветствуется.
using
или ссылки на сборку? - person Nkosi   schedule 21.02.2020