CaveTester.Core
1.0.0-beta2
This is a prerelease version of CaveTester.Core.
dotnet add package CaveTester.Core --version 1.0.0-beta2
NuGet\Install-Package CaveTester.Core -Version 1.0.0-beta2
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="CaveTester.Core" Version="1.0.0-beta2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CaveTester.Core --version 1.0.0-beta2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CaveTester.Core, 1.0.0-beta2"
#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 CaveTester.Core as a Cake Addin #addin nuget:?package=CaveTester.Core&version=1.0.0-beta2&prerelease // Install CaveTester.Core as a Cake Tool #tool nuget:?package=CaveTester.Core&version=1.0.0-beta2&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Cave Tester
Cave Tester is a lightweight testing library that help you manage your database and generate mock data.
Features
- Automatic database save and restore
- Determinist id generator
- Rules sets for object generation with Bogus
Planned features
- Database pooling for easier parallel testing
- Some methods to test entity ⇔ dto mapping
Quickstart
public class FooTests : Tester
{
private readonly DbContext _dbContext;
public FooTests()
{
// init your context here
// Create a snapshot of the database before the test begin
SaveHandler.Add(new SqlServerDbSnapshot(_dbContext.Database));
}
[Fact]
public async Task ShouldFoo()
{
// Generate 5 Person with a random name
await _dbContext.Generate<Person>(5, (faker, person) => person.Name = faker.Lorem.Word())
.SaveChangesAsync();
// method to test
// assertions
// The database will automaticly be restored in a clean state from the snapeshot, wich will then be deleted
// This happen even if the test fails
}
}
public class Person
{
public string Name { get; set; }
}
Example
See a complete example here
Tests
To build and run the tests you need to create a database using the script CaveTester.Tests/create_database.sql and configure the connection string CaveTester.Tests/DbSaverTests.cs
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- JetBrains.Annotations (>= 2018.2.1)
- Microsoft.EntityFrameworkCore (>= 2.1.4)
- Microsoft.EntityFrameworkCore.Relational (>= 2.1.4)
- System.Data.SqlClient (>= 4.5.1)
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.0-beta2 | 561 | 11/30/2018 |
1.0.0-beta1 | 571 | 9/26/2018 |
Add an async version for all IDbsave methods
Add SourceLink support
Add Jetbrain nullable attributes