Skip to content

How can a Blazored Modal be unit tested? (I'm using the bUnit framework.) #528

Open
@nagtilaklaxman

Description

@nagtilaklaxman

How can a Blazored Modal be unit tested? (I'm using the bUnit framework.)

My modal component has a CascadingParameter BlazoredModalInstance. Clicking "OK" calls BlazoredModalInstance.CloseAsync(), and cancelling calls BlazoredModalInstance.CancelAsync(). The Blazored Modal works fine in my application. (Thanks for the good work!)

Since BlazoredModalInstance is a class, I can't use a mock to check if CloseAsync or CancelAsync have been called.

I can construct a BlazoredModalInstance object in the test and supply it as a parameter to a surrounding my modal component under test, but when e.g. CloseAsync is called, I get a NullReferenceException at Blazored.Modal.BlazoredModalInstance.d__72.MoveNext().

Do I need set up the initial state of this test BlazoredModalInstance object more, e.g., by calling some other methods on it?

I had hoped for something more like IModalService. I am able to unit test the code to show my modal (e.g., IModalService.Show). It's very easy to mock IModalService and IModalReference in order to test my modal from the "outside". But I can't figure out how to test the modal from the "inside".

Originally posted by @linestandard in #311

Metadata

Metadata

Assignees

No one assigned

    Labels

    FeatureNew feature that will be added to the projectUp For GrabsThis issue is available to anyone that wants to help

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions