SignalR UnitTestingSupport Save

Easy to use, small, SignalR Core unit testing support with NUnit, xUnit, MSTest and Moq. It`s also possibility to use it with custom testing engine. (Docs ready to use)

Project README

For the latest versions of NUnit version see: https://www.nuget.org/packages/SignalR.UnitTestingSupport.NUnit/

For the latest versions of xUnit version see: https://www.nuget.org/packages/SignalR.UnitTestingSupport.xUnit

For the latest versions of MSTest version see: https://www.nuget.org/packages/SignalR.UnitTestingSupport.MSTest/

For full docs see: https://github.com/NightAngell/SignalR_UnitTestingSupport/wiki

What it is?

This lib provide support objects and base classes for testing Hub, Hub<T>, IHubContext<T>, IHubContext<T, P>. For example preconfigured mocks and helpfull verify methods. There is also support for testing Hubs and IHubContexts with Entity Framework Core.

Which nuget version should I choose?

  1. netcoreapp (2.1, 2,2, 3.0, 3,1) - 2.0.0
  2. net5 - 5.0.0
  3. net6.0 - 6.0.0
  4. net7.0 - 7.0.0
  5. net8.0 - 8.0.0

How to install

1. Using Visual Studio Nuget Package Manager

If you dont know how install nuget via Visual Studio see this: https://www.youtube.com/watch?v=jX5HlrerIos

SignalR.UnitTestingSupport.NUnit
SignalR.UnitTestingSupport.xUnit
SignalR.UnitTestingSupport.MSTest

2. Using Packet Manager Console

Install-Package SignalR.UnitTestingSupport.NUnit
Install-Package SignalR.UnitTestingSupport.xUnit
Install-Package SignalR.UnitTestingSupport.MSTest

3. Using .Net CLI

dotnet add package SignalR.UnitTestingSupport.NUnit
dotnet add package SignalR.UnitTestingSupport.xUnit
dotnet add package SignalR.UnitTestingSupport.MSTest

Troubleshooting!

Install NUnit3TestAdapter nuget for visual studio testing with NUnit in visual studio. https://www.nuget.org/packages/NUnit3TestAdapter/

Install xunit.runner.visualstudio nuget for visual studio testing with xUnit. https://www.nuget.org/packages/xunit.runner.visualstudio/

Install MSTest.TestAdapter nuget for visual studio testing with MSTest.
https://www.nuget.org/packages/MSTest.TestAdapter/

If your tests are not even detected, install Microsoft.Net.Test.Sdk nuget :)
https://www.nuget.org/packages/Microsoft.NET.Test.Sdk/

If you get NullReferenceException when you try testing with my lib see this.

Error after update for ASP.NET Core 3.0: Help with migration from ASP.NET Core 2.1 or 2.2 to 3.0

Help with migration from netstandard2.0 to netstandard.2.1 compatibile project

How to use

After you add nuget to your test project, SignalR_UnitTestingSupport is ready to use.

All IHubContext support classes are in SignalR_UnitTestingSupportCommon.IHubContextSupport namespace

For NUnit: All testing base classes are in SignalR_UnitTestingSupport.Hubs namespace

For xUnit: All testing base classes are in SignalR_UnitTestingSupportXUnit.Hubs namespace

For MSTest: All testing base classes are in SignalR_UnitTestingSupportMSTest.Hubs namespace

Create test class for hub for example:

class ExampleHubTests {}

And then:

1. For testing Hub

class ExampleHubTests : HubUnitTestsBase {}

2. For testing Hub<T>

class ExampleHubTests : HubUnitTestsBase<T> {}

3. For testing Hub with EntityFrameworkCore

class ExampleHubTests : HubUnitTestsWithEF<TDbContext> {}

TDbContext is any class which inherit from Microsoft.EntityFrameworkCore.DbContext or DbContext itself.

4. For testing Hub<T> with EntityFrameworkCore

class ExampleHubTests : HubUnitTestsWithEF<T, TDbContext> {}

TDbContext is any class which inherit from Microsoft.EntityFrameworkCore.DbContext or DbContext itself.

5. For testing with IHubContext<THub> see this.

5. For testing with IHubContext<THub, TIHubResponses> see this.

2) Testing objects approach (Alternative, if you can't use base classes).

How use second approach. See this.

For full docs see: Docs

Open Source Agenda is not affiliated with "SignalR UnitTestingSupport" Project. README Source: NightAngell/SignalR_UnitTestingSupport
Stars
26
Open Issues
0
Last Commit
4 months ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating