Я пишу модульный тест для фоновой службы. Кажется, это работает, если я использую фреймворк Moq, но мы используем NSubstitute в команде и хотели бы придерживаться этого.
Я имел в виду упомянутый код @ Как мне написать модульный тест для фоновой службы? .
Мне удалось преобразовать синтаксис кода из Moq в NSubstitute за исключением одной строки, т.е. Mock.Get(service)
.
Может ли кто-нибудь помочь мне преобразовать приведенный ниже код для использования NSubstitute вместо Moq или сообщить мне эквивалентный синтаксис Mock.Get(service)
в NSubstitute.
IServiceCollection services = new ServiceCollection();
services.AddSingleton(Mock.Of<someobject>()); // Nsubstittute equivalent is services.AddSingleton(Substitute.For<someobject>());
var serviceProvider = services.BuildServiceProvider();
var service = serviceProvider.GetRequiredService<someobject>();
var hostedService = serviceProvider.GetService<IHostedService>();
await hostedService.StartAsync(CancellationToken.None);
await Task.Delay(2000);
await hostedService.StopAsync(CancellationToken.None);
var mock = Mock.Get(service);
mock.Verify(_ => _.SendQuote(), Times.Once);