Home

Awesome

EfCore.TestSupport

This NuGet package containing methods to help test applications that use Entity Framework Core for database access using SQL Server, PostgreSQL, Cosmos DB, and a generic in-memory SQLite approach which works with every EF Core database provider (with limitations). This readme provides links to the documentation in the EfCore.TestSupport wiki. Also see Release Notes for information on changes.

The EfCore.TestSupport library is available on NuGet as EfCore.TestSupport and is an open-source library under the MIT license. See ReleaseNotes for details of the changes in each vesion.

List of versions and which .NET framework they support

Since .NET 8 this library only supports one .NET. This change makes it easier to update to the next .NET release.

There are older versions of the EfCore.TestSupport library, but .NET lower than .NET 5 are not supported by Microsoft.

Documentation

The NuGet package EfCore.TestSupport containing methods to help you unit test applications that use Entity Framework Core for database access. This readme defines the various groups, with links to the documentation in the EfCore.TestSupport wiki.

NOTE: The techniques are explained in much more details in chapter 17 of the book Entity Framework in Action, second edition.

Here is an image covering just a few of the methods available in this library.

Examples of library methods in use

The various groups of tools are:

  1. Helpers to create an in-memory Sqlite database for unit testing.
    See Sqlite in memory test database.
  2. Helpers to create connection strings with a unique database name.
    See Creating connection strings.
  3. Helpers for creating unique SQL Server databases for unit testing.
    See Create SQL Server databases.
  4. Helpers to create Cosmos DB databases linked to Azure Cosmos DB Emulator.
    See Create Cosmos DB options.
  5. Helper for wiping all data and resetting the schema a SQL Server database.
    See Quickly wipe and reset schema on SQL Server.
  6. Various tools for getting test data, or file paths to test data.
    See Test Data tools.
  7. A tool for applying a SQL script file to a EF Core database.
    See Run SQL Script.
  8. Tools for capturing EF Core logging.
    See Capture EF Core logging.