Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
nagtilaklaxman opened this issue Aug 4, 2023 · 1 comment
Labels
Feature New feature that will be added to the project Up For Grabs This issue is available to anyone that wants to help

Comments

@nagtilaklaxman
Copy link

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

@chrissainty
Copy link
Member

There isn't any testing integrations with bUnit at the moment. I plan to add one as I have with Blazored Toast and Local/Session Storage but I haven't been able to find the time yet.

@chrissainty chrissainty added Feature New feature that will be added to the project Up For Grabs This issue is available to anyone that wants to help labels Feb 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature that will be added to the project Up For Grabs This issue is available to anyone that wants to help
Projects
None yet
Development

No branches or pull requests

2 participants