I have a Blazor project with Radzen, and am using bUnit to test my components.
I'm encountering an issue with testing a component that has a DialogService injection. When this line in my test runs
var cut = Render(@<DefaultProcessingTemplate ClientProcessor="mockDatabaseProcessing.Object" />);I get the following error:
System.InvalidOperationException : Cannot provide a value for property 'DialogService' on type 'ClientProcessing.BlazorServer.Components.Shared.DefaultProcessingTemplate'. There is no registered service of type 'Radzen.DialogService'.
How do I solve this problem? I tried adding a registration for DialogService in program.cs but that didn't change the outcome of the test.
DefaultProcessingTemplate.razor
@using ClientProcessing.Library@inject IJSRuntime JsRuntime@inject DialogService DialogService@if (ClientProcessor as IDataProcessing is not null){<RadzenRow><RadzenHeading Size="H2" Text="Reporting"></RadzenHeading></RadzenRow><RadzenRow Gap=".5rem" class="rz-mb-6"><RadzenButton Click="OpenReportingRunDialog" ButtonStyle="ButtonStyle.Primary" Text="Run"></RadzenButton></RadzenRow>}else{ // code ...}@code { [Parameter] public IDataProcessing ClientProcessor { get; set; } protected override void OnInitialized() { // ... code } private async Task OpenReportingRunDialog() { var parameters = new Dictionary<string, object>() { { "CommDate", ClientProcessor.GetCurrMo() }, { "Reporting", ClientProcessor } }; var dialogOptions = new DialogOptions { CloseDialogOnEsc = true, Width = "900px" }; await DialogService.OpenAsync<ReportingRun>("Run", parameters, dialogOptions); }}DefaultProcessingTemplateTests.razor
@using ClientProcessing.BlazorServer.Components.Shared@using ClientProcessing.Library@using Moq@using Radzen.Blazor@inherits TestContext@code { [Fact] public void ReportingSectionHeadingExists() { Mock<IDataProcessing> mockDatabaseProcessing = new Mock<IDataProcessing>(); var cut = Render(@<DefaultProcessingTemplate ClientProcessor="mockDatabaseProcessing.Object" />); var reportingHeading = cut.FindComponent<RadzenHeading>(); Assert.Equal("Reporting", reportingHeading.Instance.Text); }}