Blazorme.TestHost
26.9.7
See the version list below for details.
dotnet add package Blazorme.TestHost --version 26.9.7
NuGet\Install-Package Blazorme.TestHost -Version 26.9.7
<PackageReference Include="Blazorme.TestHost" Version="26.9.7" />
<PackageVersion Include="Blazorme.TestHost" Version="26.9.7" />
<PackageReference Include="Blazorme.TestHost" />
paket add Blazorme.TestHost --version 26.9.7
#r "nuget: Blazorme.TestHost, 26.9.7"
#:package Blazorme.TestHost@26.9.7
#addin nuget:?package=Blazorme.TestHost&version=26.9.7
#tool nuget:?package=Blazorme.TestHost&version=26.9.7
Blazorme.TestHost
Support library for Blazor component unit testing. The source code is taken from Steve Sanderson's BlazorUnitTestingPrototype project. See his blog post for more details. His project is available only as source code; this package makes it usable as a dependency.
Consider bUnit first
bUnit grew out of the same prototype and is the actively maintained library for this job. For a new test suite, prefer it. This package exists for projects already built on it.
Requirements
Targets net8.0 and net10.0. Earlier versions targeted netstandard2.1 and net5.0; those
are no longer supported.
.NET 8 is included deliberately. A net10.0-only package would leave every project on .NET 5 to .NET 9 resolving 1.0.0, which crashes at runtime (see below), so those users would be worse off than before.
Version 1.0.0 did not work on .NET 5 or later, despite advertising that it did. Duplicate
PackageReferenceitems meant itsnet5.0build was compiled against ASP.NET Core 3.1, whoseRenderTreeFrameexposed public fields that became properties in .NET 5. Rendering a component threwMissingFieldExceptionat runtime. Fixed in this release.
Installation
Install-Package Blazorme.TestHost
Usage
using Blazorme;
var host = new TestHost();
host.AddService<IMyService, IMyService>(myServiceStub);
var component = host.AddComponent<MyComponent>();
component.Find("button.submit")?.Click();
component.GetMarkup().Should().Contain("Saved");
Find returns null when the selector matches nothing; FindAll returns every match. Both accept
CSS selectors, resolved by Fizzler over the rendered markup.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Fizzler.Systems.HtmlAgilityPack (>= 1.2.1)
- Microsoft.AspNetCore.Components (>= 10.0.11)
- Microsoft.AspNetCore.Components.Web (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- RichardSzalay.MockHttp (>= 6.0.0)
-
net8.0
- Fizzler.Systems.HtmlAgilityPack (>= 1.2.1)
- Microsoft.AspNetCore.Components (>= 8.0.30)
- Microsoft.AspNetCore.Components.Web (>= 8.0.30)
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Logging (>= 8.0.1)
- RichardSzalay.MockHttp (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Modernised for .NET 10, and multi-targeted so .NET 8 projects have a working version too. netstandard2.1 and net5.0 are no longer supported.
Fixed: version 1.0.0 did not work on .NET 5 or later at all, despite advertising .NET 5 support. Duplicate PackageReference items meant both of its builds were compiled against ASP.NET Core 3.1, whose RenderTreeFrame exposed public fields that later became properties, so rendering a component threw MissingFieldException at runtime.