Moq.EntityFrameworkCore 6.0.1.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package Moq.EntityFrameworkCore --version 6.0.1.4
NuGet\Install-Package Moq.EntityFrameworkCore -Version 6.0.1.4
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="Moq.EntityFrameworkCore" Version="6.0.1.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Moq.EntityFrameworkCore --version 6.0.1.4
#r "nuget: Moq.EntityFrameworkCore, 6.0.1.4"
#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 Moq.EntityFrameworkCore as a Cake Addin
#addin nuget:?package=Moq.EntityFrameworkCore&version=6.0.1.4

// Install Moq.EntityFrameworkCore as a Cake Tool
#tool nuget:?package=Moq.EntityFrameworkCore&version=6.0.1.4

Moq.EntityFrameworkCore

Build Status Downloads

This library helps you mocking EntityFramework contexts. Now you will be able to test methods that are using DbSet<TEntity> or DbQuery<TEntity> from DbContext in an effective way.

Installation - NuGet Packages

Install-Package Moq.EntityFrameworkCore

Usage

For example we can assume that we have the following production code:

public class UsersContext : DbContext
{
    public virtual DbSet<User> Users { get; set; }
}

To mock Users and Roles you only need to implement the following 3 steps:

1. Create DbContext mock:

var userContextMock = new Mock<UsersContext>();

2. Generate your entities:

IList<User> users = ...;

3. Setup DbSet or DbQuery property:

userContextMock.Setup(x => x.Users).ReturnsDbSet(users);

or

userContextMock.SetupGet(x => x.Users).ReturnsDbSet(users);

or

userContextMock.SetupSequence(x => x.Set<User>())
  .ReturnsDbSet(new List<User>())
  .ReturnsDbSet(users);

And this is all. You can use your DbContext in your tests.

The second option is mocking DbSet that is part of the interface:

public interface IBlogContext
{
   DbSet<Post> Posts { get; }
}

And then use:

var posts = new List<Post>();
var contextMock = new Mock<IBlogContext>();
contextMock.Setup(p => p.Posts).ReturnsDbSet(posts);

You will find examples of this library in the repository.

Product 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.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Moq.EntityFrameworkCore:

Package Downloads
Atacorp.ApiEssentials.Testing.XUnit

Package Description

Devocean.Tests

Devocean.Tests is a set of base classes and helpers inteded to support implementing integration and unit tests on projects based on Devocean.Core

Atacorp.TestingEssentials.XUnit

Package Description

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on Moq.EntityFrameworkCore:

Repository Stars
CodeMazeBlog/CodeMazeGuides
The main repository for all the Code Maze guides
TanvirArjel/EFCore.GenericRepository
This repository contains Generic Repository implementation for Entity Framework Core
matthewrenze/clean-architecture-core
A sample app for my online course "Clean Architecture: Patterns, Practices, and Principles" in .NET Core
Version Downloads Last updated
8.0.1.2 70,946 1/27/2024
8.0.1.1 1,088 1/27/2024
8.0.0.1 2,867 1/27/2024
7.0.0.2 1,517,911 12/1/2022
6.0.1.4 1,363,501 5/29/2022
6.0.1.3 78,150 5/29/2022
6.0.1.2 426,112 1/25/2022
6.0.0.6 22,272 1/25/2022
5.0.0.2 539,475 3/12/2021
5.0.0.1 105,667 11/29/2020
3.1.2.13 278,938 11/29/2020
3.1.2.6 163,576 6/29/2020
3.1.2.1 81,061 2/26/2020
3.0.0.10 40,716 11/9/2019
3.0.0.4 9,736 10/6/2019
2.2.1.1 122,676 6/30/2020
2.2.1 159,709 2/1/2019
2.0.1 192,757 2/23/2018
1.0.0 8,520 10/13/2017

Version 6.0.1.3
Added support for SetupGet