DbMocker 1.25.0
See the version list below for details.
dotnet add package DbMocker --version 1.25.0
NuGet\Install-Package DbMocker -Version 1.25.0
<PackageReference Include="DbMocker" Version="1.25.0" />
paket add DbMocker --version 1.25.0
#r "nuget: DbMocker, 1.25.0"
// Install DbMocker as a Cake Addin #addin nuget:?package=DbMocker&version=1.25.0 // Install DbMocker as a Cake Tool #tool nuget:?package=DbMocker&version=1.25.0
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 | 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. |
-
.NETStandard 2.0
- Microsoft.SqlServer.Management.SqlParser (>= 172.0.1)
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 | 534 | 2/4/2024 |
1.25.0 | 5,442 | 11/9/2024 |
1.24.0 | 430 | 11/6/2024 |
1.23.0 | 31,631 | 12/19/2023 |
1.22.0 | 52,345 | 7/7/2022 |
1.21.0 | 14,373 | 11/27/2021 |
1.20.0 | 1,340 | 10/8/2021 |
1.19.0 | 13,904 | 9/26/2021 |
1.18.0 | 69,322 | 2/7/2021 |
1.17.0 | 1,150 | 1/25/2021 |
1.16.0 | 563 | 1/23/2021 |
1.15.0 | 918 | 1/13/2021 |
1.14.0 | 547 | 1/13/2021 |
1.13.0 | 668 | 12/22/2020 |
1.12.0 | 564 | 12/14/2020 |
1.11.0 | 698 | 11/23/2020 |
1.10.0 | 596 | 11/23/2020 |
1.9.0 | 597 | 11/12/2020 |
1.8.0 | 592 | 11/11/2020 |
1.7.0-Preview2 | 667 | 5/20/2020 |
1.7.0-Preview1 | 516 | 5/20/2020 |
1.6.0 | 48,411 | 4/17/2019 |
1.5.0 | 1,611 | 9/2/2018 |
1.4.1-alpha | 840 | 8/29/2018 |
1.4.0 | 1,075 | 8/5/2018 |
1.3.0 | 1,068 | 8/2/2018 |
1.2.0 | 1,045 | 7/31/2018 |
1.1.0 | 1,275 | 7/15/2018 |