Программное использование служб WebAssembly Host в тесте.C#

Место общения программистов C#
Anonymous
Программное использование служб WebAssembly Host в тесте.

Сообщение Anonymous »

В настоящее время мы работаем над проектом, состоящим из проекта Blazor WebAssembly и проекта веб-API ASP.NET Core. Поскольку это две отдельные системы и хосты, каждая из них имеет свои собственные логические хосты C#: уровень представления имеет WebAssemblyHost, а веб-API — веб-приложение с соответствующим конструктором.
Наверняка тесты качества, я хотел бы получить ссылку на службы, зарегистрированные в коллекции служб узла представления.
В частности, я хотел бы проверить, что конфигурация Ламара действительна с помощью такого теста :

Код: Выделить всё

[Fact]
public void LamarConfiguration_IsValid()
{
var host = Frontend.Presentation.Program.Host;
host.Services.Should().BeOfType();
var actualContainer = (IContainer)host.Services;
actualContainer.AssertConfigurationIsValid();
}
Однако я сталкиваюсь с проблемами при доступе к сервисам на уровне представления:
Когда я пытаюсь построить хост WebAssembly с помощью WebAssemblyHostBuilder, я сталкиваюсь с PlatformNotSupportedException, и если я использую другой сборщик хостов, я не получаю службы, специфичные для Blazor, такие как NavigationManager.
Я также попробовал настроить тестовую среду с помощью Playwright, что мы и сделали уже использую для сквозных тестов. Однако даже здесь я не могу получить доступ к сервисам в этих тестах, так как технически мы запускаем проект Web API, который затем обслуживает проект презентации WebAssembly.
Есть ли способ добиться этот? Изучив доступную документацию и онлайн-ресурсы, я не нашел решения, но, возможно, я что-то упускаю из виду.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-a-test

Вернуться в «C#»