NFixtures.WebApi
1.0.2
dotnet add package NFixtures.WebApi --version 1.0.2
NuGet\Install-Package NFixtures.WebApi -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.WebApi" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NFixtures.WebApi --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: NFixtures.WebApi, 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.WebApi as a Cake Addin #addin nuget:?package=NFixtures.WebApi&version=1.0.2 // Install NFixtures.WebApi as a Cake Tool #tool nuget:?package=NFixtures.WebApi&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
<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.
</div>
NFixtures give a set of pre-built fixtures you can inject into your tests.
License
- NFixtures is licensed under the MIT 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 Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 6.0.6)
- Microsoft.AspNetCore.Mvc.Testing (>= 6.0.6)
- NFixtures.Primitives (>= 1.0.2)
- Serilog.Sinks.XUnit (>= 3.0.3)
- System.IdentityModel.Tokens.Jwt (>= 6.20.0)
- xunit (>= 2.4.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.