SimpleMock 1.0.3
See the version list below for details.
dotnet add package SimpleMock --version 1.0.3
NuGet\Install-Package SimpleMock -Version 1.0.3
<PackageReference Include="SimpleMock" Version="1.0.3" />
paket add SimpleMock --version 1.0.3
#r "nuget: SimpleMock, 1.0.3"
// Install SimpleMock as a Cake Addin #addin nuget:?package=SimpleMock&version=1.0.3 // Install SimpleMock as a Cake Tool #tool nuget:?package=SimpleMock&version=1.0.3
SimpleMock
SimpleMock is a very simple mocking framework, something that I have always wanted to try to write but I was prompted to have a go after a discussion at work.
Usage
The examples below use the following interface as an example
public interface IWorker
{
int DoSomething(int anInt, string aString, bool aBool);
string DoSomethingStringy(int anInt);
int Height { get; }
}
Creating the Mock
var workerMock = new Mock<IWorker>();
Mocking a Method
workerMock
.Setup(w => w.DoSomething(0, "", false))
.Returns(5);
The following two code blocks will return 5 for method calls that passed an empty string for the second parameter regardless of the values of the other two parameters.
workerMock
.Setup(w => w.DoSomething(It.IsAny<int>(), "", It.IsAny<bool>()))
.Retruns(5);
workerMock
.Setup(w => w.DoSomething(It.IsAny<int>(), It.Affirms<string>(s => s == ""), It.IsAny<bool>()))
.Retruns(5);
Mocking a Readable Property
workerMock
.Setup(w => w.Height)
.Returns(10);
Supplying the Mock to a Dependant
var dependant = new Dependant(workerMock.MockObject);
Getting the Call Count
workerMock.GetCallCount(w => w.DoSomething(0, "", false));
The following code will only match method calls that passed an empty string for the second parameter regardless of the values of the other two parameters.
workerMock.GetCallCount(w => w.DoSomething(It.IsAny<int>(), "", It.IsAny<bool>()));
Getting the Parameter Values of a Specific Call
workerMock.GetCallParameters(w => w.DoSomething(0, "", false), 7);
N.B. The index is zero-based.
The following code will only match method calls that passed 59 for the first parameter regardless of the values of the other two parameters.
workerMock.GetCallParameters(w => w.DoSomething(59, It.IsAny<string>(), It.IsAny<bool>()), 2);
Limitations
This is only a very simple and niave implementation so there are a number of limitations, amongst which are:
- Can only mock interfaces
- No support for callbacks
Product | Versions 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. |
-
net6.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.