DbMocker 2.0.1-preview
dotnet add package DbMocker --version 2.0.1-preview
NuGet\Install-Package DbMocker -Version 2.0.1-preview
<PackageReference Include="DbMocker" Version="2.0.1-preview" />
<PackageVersion Include="DbMocker" Version="2.0.1-preview" />
<PackageReference Include="DbMocker" />
paket add DbMocker --version 2.0.1-preview
#r "nuget: DbMocker, 2.0.1-preview"
#:package DbMocker@2.0.1-preview
#addin nuget:?package=DbMocker&version=2.0.1-preview&prerelease
#tool nuget:?package=DbMocker&version=2.0.1-preview&prerelease
DbMocker - Simple Database Mocker for UnitTests
Introduction
This .NET library simplifies data mocking for UnitTests, to avoid a connection to a relational database. DbMocker use the standard Microsoft .NET DbConnection object. So, you can mock any toolkit, including EntityFramework, Dapper or ADO.NET; And for all database servers (SQL Server, Oracle, SQLite).
First, add the DbMocker NuGet packages.
Next, instanciate a MockDbConnection and mock you SQL requests using a condition and return a DataTable.
Please, contact me if you want other features or to solve bugs.
// Sample method from your DataService
public int GetNumberOfEmployees(DbConnection connection)
{
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = "SELECT COUNT(*) FROM Employees";
return Convert.ToInt32(cmd.ExecuteScalar());
}
}
/* Create a text file "123-EMPLOYEES.txt" with this content
And set the build property to "Embedded resource".
Id Name Age
(int) (string) (int?)
10 Scott 21
20 Bill NULL
*/
[TestMethod]
public void UnitTest0()
{
var conn = new MockDbConnection();
// The text file "123-EMPLOYEES.txt" is embedded in this project.
// See the Samples folder.
// - 123 is an identifier (as you want)
// - EMPLOYEES is the CommandText Tag
// See https://docs.microsoft.com/en-us/ef/core/querying/tags
conn.Mocks.LoadTagsFromResources("123-EMPLOYEES");
// Call your "classic" methods to tests
var data = GetEmployees(conn);
// DbMocker read the embedded file
// and associated the content to the tag
Assert.AreEqual("Scott", data[0][1]);
Assert.AreEqual("Bill", data[1][1]);
}
[TestMethod]
public void UnitTest1()
{
var conn = new MockDbConnection();
// When a specific SQL command is detected,
// Don't execute the query to your database engine (SQL Server, Oracle, SQLite, ...),
// But returns this _Table_.
conn.Mocks
.When(cmd => cmd.CommandText.StartsWith("SELECT") &&
cmd.Parameters.Count() == 0)
.ReturnsTable(MockTable.WithColumns("Count")
.AddRow(14));
// Call your "classic" methods to tests
int count = GetNumberOfEmployees(conn);
Assert.AreEqual(14, count);
}
See https://apps72.com for more information.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.SqlServer.Management.SqlParser (>= 160.22506.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DbMocker:
| Package | Downloads |
|---|---|
|
MockTracer
Base test class for generated code |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on DbMocker:
| Repository | Stars |
|---|---|
|
dtm-labs/client-csharp
The new client for dtm in csharp, including workflow, dtmcli, and dtmgrpc
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1-preview | 3,645 | 2/4/2024 |
| 1.26.0 | 59,170 | 3/10/2025 |
| 1.25.0 | 32,348 | 11/9/2024 |
| 1.24.0 | 611 | 11/6/2024 |
| 1.23.0 | 41,916 | 12/19/2023 |
| 1.22.0 | 66,155 | 7/7/2022 |
| 1.21.0 | 15,346 | 11/27/2021 |
| 1.20.0 | 1,553 | 10/8/2021 |
| 1.19.0 | 14,237 | 9/26/2021 |
| 1.18.0 | 79,712 | 2/7/2021 |
| 1.17.0 | 1,343 | 1/25/2021 |
| 1.16.0 | 718 | 1/23/2021 |
| 1.15.0 | 1,069 | 1/13/2021 |
| 1.14.0 | 713 | 1/13/2021 |
| 1.13.0 | 852 | 12/22/2020 |
| 1.12.0 | 726 | 12/14/2020 |
| 1.11.0 | 860 | 11/23/2020 |
| 1.10.0 | 757 | 11/23/2020 |
| 1.9.0 | 748 | 11/12/2020 |
| 1.8.0 | 741 | 11/11/2020 |
| 1.7.0-Preview2 | 835 | 5/20/2020 |
| 1.7.0-Preview1 | 675 | 5/20/2020 |
| 1.6.0 | 58,041 | 4/17/2019 |
| 1.5.0 | 1,818 | 9/2/2018 |
| 1.4.1-alpha | 1,030 | 8/29/2018 |
| 1.4.0 | 1,374 | 8/5/2018 |
| 1.3.0 | 1,379 | 8/2/2018 |
| 1.2.0 | 1,377 | 7/31/2018 |
| 1.1.0 | 1,758 | 7/15/2018 |