Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

How to write unit tests for Blazor using bUnit when component has injected Radzen's DialogService?

$
0
0

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);    }}

Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>