Уточняю: тестировать я буду контроллер (см. https://dzen.ru/a/aERZVGOmEkUkVxAm) - с использованием xUnit v3 и пакета Microsoft.AspNetCore.Mvc.Testing. И без Moq. Основная статья, откуда я все это брал - вот: https://learn.microsoft.com/ru-ru/aspnet/core/test/integration-tests?view=aspnetcore-8.0&pivots=xunit. Кстати, для .NET Core 9 там код слегка поменялся, так что при переходе с .NET Core 8 на .NET Core 9 придется менять часть кода в тестовом проекте. Итак. Во-первых, в проекте с сервисами и хостингом сервисов, в точке входа (Program.cs) пришлось немного переделать код: 1. Добавить атрибут: #if DEBUG
[assembly:
InternalsVisibleTo("Foo.Server.Bar.IntegrationTests")]
#endif Foo.Server.Bar.IntegrationTests - это проект, где будут тесты. 2. Пришлось вернуться к использованию явно определенной точки входа Program / Main, причем класс Program объявить как partial. Возможно, это немного избыточно (вроде, можно обойтись без явного метода Main), ну да пусть будет как есть - более нагляд