uid | title |
---|---|
home |
bUnit - a testing library for Blazor components |
bUnit is a testing library for Blazor Components. Its goal is to make it easy to write comprehensive, stable unit tests. With bUnit, you can:
- Setup and define components under tests using C# or Razor syntax
- Verify outcomes using semantic HTML comparer
- Interact with and inspect components as well as trigger event handlers
- Pass parameters, cascading values and inject services into components under test
- Mock
IJSRuntime
, Blazor authentication and authorization, and others
bUnit builds on top of existing unit testing frameworks such as xUnit, NUnit, and MSTest, which run the Blazor components tests in just the same way as any normal unit test. bUnit runs a test in milliseconds, compared to browser-based UI tests which usually take seconds to run.
Go to the Documentation pages to learn more.
Let’s write a test for the <Counter>
component listed below. This comes with the standard Blazor project template which verifies that the counter corrects increments when the button is clicked:
[!code-razorCounter.razor]
To do this, you can carry out the following using bUnit and xUnit:
[!code-cshtmlCounterTest.razor]
This test uses bUnit's test context to render the Counter
component with the Render
method. It then finds the button the component rendered and clicks it with the Find
and Click
methods. Finally, it finds the paragraph (<p>
) element and verifies that it matches the expected markup passed to the MarkupMatches method.
Go to the Documentation pages to learn more.
bUnit is available on NuGet in various incarnations. Most users should just pick the bUnit package:
Name | Description | NuGet Download Link |
---|---|---|
bUnit | Includes the bUnit.core and bUnit.web packages. | |
bUnit.core | Core library that enables rendering a Blazor component in a test context. | |
bUnit.web | Adds support for testing Blazor components for the web. This includes bUnit.core. | |
bUnit.template | Template for bUnit test projects based on xUnit, NUnit or MSTest | |
bUnit.generators | Source code generators to minimize code setup in various situations. | |
bUnit.web.query | bUnit implementation of testing-library.com's query APIs. |
A huge thank you to the sponsors of my work with bUnit. The higher tier sponsors are:
Shoutouts and a big thank you to all the contributors to the library, including those who raise issues, those who provide input to issues, and those who send pull requests.
Want to help out? You can help in a number of ways:
- Provide feedback and input through issues, via Twitter or by using the bUnit Gitter chat room.
- Help build the library. Just pick an issue and submit pull requests.
- Help write documentation.
- Create blog posts, presentations, or video tutorials. If you do, I'll be happy to showcase them in the related section on this site.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.
This project is supported by the .NET Foundation.