Программное использование служб 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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