NFixtures.xUnit 1.0.2

.NET 6.0
dotnet add package NFixtures.xUnit --version 1.0.2
NuGet\Install-Package NFixtures.xUnit -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NFixtures.xUnit" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NFixtures.xUnit --version 1.0.2
#r "nuget: NFixtures.xUnit, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NFixtures.xUnit as a Cake Addin
#addin nuget:?package=NFixtures.xUnit&version=1.0.2

// Install NFixtures.xUnit as a Cake Tool
#tool nuget:?package=NFixtures.xUnit&version=1.0.2

<h1 align="center">

<img src="https://raw.githubusercontent.com/dolifer/NFixtures/master/icon.png" alt="NFixtures" width="200"/> <br/> NFixtures </h1>

<div align="center">

A set of fixtures to use in integration tests.

GitHub license

</div>

NFixtures give a set of pre-built fixtures you can inject into your tests.

License

Getting started

PackageName Description
NFixtures.WebApi Contains StartupFixture<T> that allows you to easily test your WebApi by passing your Startup
NFixtures.xUnit Gives you a LabeledTestCase that allows you to give a name for your test cases
NFixtures.Primitives Contains a TestUser

StartupFixture

public class ApiFixture : StartupFixture<Startup>
{
    protected override void ConfigureAppConfiguration(IConfigurationBuilder configurationBuilder)
    {
        // configure web host configuration - add env parameters, etc.
    }

    protected override void ConfigureTestServices(IServiceCollection services)
    {
        // add additional services (usually Mocks) to use in your test
    }
}

Now you can inject this into your tests, by implementing IClassFixture<ApiFixture>

public class ControllerTests : IClassFixture<ApiFixture>
{
    private readonly ApiFixture _fixture;

    public ControllerTests([NotNull] ApiFixture fixture, [NotNull] ITestOutputHelper output)
    {
        _fixture = fixture;
        _fixture.SetLogger(output); // redirects logger messages into standard xunit test output
    }

    [Fact]
    public async Task Get_Returns_Unauthorized()
    {
        // arrange
        var client = _fixture.CreateDefaultClient();

        // act
        var response = await client.GetAsync("/api/v1/controller").ConfigureAwait(false);

        // assert
        Assert.NotNull(response);
        Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
    }
}

TestUser

public class ApiFixture : StartupFixture<TestStartup>
{
    public ApiFixture()
    {
        FirstUser = new TestUser("123", "email@server.com");
    }
    
    public TestUser FirstUser { get; }
        
    protected override void ConfigureTestServices(IServiceCollection services)
    {
        services
            .ConfigureTestAuthentication(FirstUser); // enable authentication for our TestUser
    }
}
Product Versions
.NET net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.2 278 6/22/2022
1.0.1 284 6/21/2022
1.0.0 266 11/27/2021
0.1.7 3,524 7/16/2021
0.1.6 254 6/30/2021
0.1.5 235 3/6/2021