SimpleMock 1.0.1
See the version list below for details.
dotnet add package SimpleMock --version 1.0.1
NuGet\Install-Package SimpleMock -Version 1.0.1
<PackageReference Include="SimpleMock" Version="1.0.1" />
paket add SimpleMock --version 1.0.1
#r "nuget: SimpleMock, 1.0.1"
// Install SimpleMock as a Cake Addin #addin nuget:?package=SimpleMock&version=1.0.1 // Install SimpleMock as a Cake Tool #tool nuget:?package=SimpleMock&version=1.0.1
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);
N.B. Currently the values supplied as parameters are ignored. In this example, any call to DoSomething
will return 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));
N.B. Unlike Setup().Returns()
The values supplied as parameters are not ignored. Use It.IsAny<>()
to match all method calls
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.
N.B. Unlike Setup().Returns()
The values supplied as parameters are not ignored. Use It.IsAny<>()
to match all method calls
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
- Argument values passed in the
Setup
method are ignored.
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. 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. |
-
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.