Dapper.UnitTest
1.0.0
dotnet add package Dapper.UnitTest --version 1.0.0
NuGet\Install-Package Dapper.UnitTest -Version 1.0.0
<PackageReference Include="Dapper.UnitTest" Version="1.0.0" />
paket add Dapper.UnitTest --version 1.0.0
#r "nuget: Dapper.UnitTest, 1.0.0"
// Install Dapper.UnitTest as a Cake Addin
#addin nuget:?package=Dapper.UnitTest&version=1.0.0
// Install Dapper.UnitTest as a Cake Tool
#tool nuget:?package=Dapper.UnitTest&version=1.0.0
Dapper.UnitTest
Dapper.UnitTest is a Unit Test tool for Dapper and ADO.Net.
Motivation
It is difficult to implement UnitTest in data access layer, because everything we are writing is facing to Database. However, we don't really want to access the database in UnitTest. In addition, some companies set a code coverage threshold to compile/deploy. The purpose of this project is making data access layer UnitTest-able.
What can Dapper.UnitTest do?
Dapper.UnitTest can help you:
- Verify expected database command has been executed with expected parameters.
- Verify expected value has been returned.
- Raise code coverage.
Dapper.UnitTest can't help you:
Verify the logic in your command text
How to use?
In the UnitTest, write like below:
// Arrange
var repo = SomeRepository(mockDbConnection.Object);
mockDbConnection.InjectReturnValues(/*Return values for each DbCommand*/);
// Act
var retVal = repo.AccessDatabase();
// Assert
Assert.AreEqual(/*retVal is the same as expected*/);
Assert.AreEqual(/*Number of DbCommands been executed*/, mockDbConnection.ExecutedDbCommands.Count);
// can also verify the executed command text & parameters
For details, please see samples
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
- No dependencies.
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 | 1,007 | 6/7/2020 |
Verify expected database command has been executed with expected parameters.
Verify expected value has been returned.
Raise code coverage.