Skip to content

docs: illustrate what happens when a mock is called - #920

Merged
vbreuss merged 1 commit into
mainfrom
docs/add-mermaid-diagrams
Oct 31, 2026
Merged

vbreuss merged 1 commit into
mainfrom
docs/add-mermaid-diagrams

Conversation

@vbreuss

@vbreuss vbreuss commented Oct 31, 2026

Copy link
Copy Markdown
Member

A short diagram gives the overview before the detailed steps.

A short diagram gives the overview before the detailed steps.
@vbreuss vbreuss self-assigned this Oct 31, 2026
@vbreuss
vbreuss enabled auto-merge (squash) October 31, 2026 07:06
@sonarqubecloud

Copy link
Copy Markdown

@vbreuss
vbreuss disabled auto-merge October 31, 2026 07:23
@vbreuss
vbreuss merged commit 797cfc2 into main Oct 31, 2026
19 checks passed
@vbreuss
vbreuss deleted the docs/add-mermaid-diagrams branch October 31, 2026 07:23
@github-actions

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 3.12GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Method N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 545.6 ns 17.03 ns 15.93 ns 1.06 1976 B 1.00
Mockolate 1 515.2 ns 12.36 ns 11.56 ns 1.00 1976 B 1.00
Imposter 1 218.2 ns 2.90 ns 2.57 ns 0.42 928 B 0.47
TUnitMocks 1 468.1 ns 7.03 ns 6.58 ns 0.91 2088 B 1.06
Moq 1 182,258.5 ns 561.14 ns 497.44 ns 353.94 15150 B 7.67
NSubstitute 1 6,139.9 ns 31.41 ns 27.84 ns 11.92 9280 B 4.70
FakeItEasy 1 6,212.1 ns 42.02 ns 37.25 ns 12.06 8245 B 4.17
baseline* 10 675.5 ns 11.68 ns 10.35 ns 1.04 2192 B 1.00
Mockolate 10 647.1 ns 9.48 ns 8.40 ns 1.00 2192 B 1.00
Imposter 10 543.7 ns 5.50 ns 4.59 ns 0.84 1792 B 0.82
TUnitMocks 10 1,377.7 ns 18.76 ns 17.55 ns 2.13 3840 B 1.75
Moq 10 188,151.8 ns 606.63 ns 506.56 ns 290.82 19149 B 8.74
NSubstitute 10 10,477.5 ns 44.19 ns 36.90 ns 16.19 11800 B 5.38
FakeItEasy 10 9,375.8 ns 71.23 ns 66.62 ns 14.49 15786 B 7.20
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 2.70GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

CreateMock Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 10.93 ns 0.457 ns 0.382 ns 0.54 160 B 1.00
Mockolate 20.20 ns 0.550 ns 0.514 ns 1.00 160 B 1.00
Imposter 133.70 ns 2.427 ns 2.270 ns 6.62 576 B 3.60
TUnitMocks 41.92 ns 0.669 ns 0.626 ns 2.08 216 B 1.35
Moq 1,496.71 ns 7.030 ns 6.576 ns 74.14 2096 B 13.10
NSubstitute 2,115.34 ns 18.968 ns 17.742 ns 104.79 5048 B 31.55
FakeItEasy 1,869.96 ns 11.041 ns 10.327 ns 92.63 2763 B 17.27
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 2.64GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Event Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 247.4 ns 6.03 ns 5.64 ns 0.83 1744 B 1.00
Mockolate 296.7 ns 14.98 ns 14.01 ns 1.00 1744 B 1.00
Imposter 398.1 ns 1.57 ns 1.39 ns 1.34 512 B 0.29
TUnitMocks 183.7 ns 3.88 ns 3.63 ns 0.62 1392 B 0.80
Moq 16,711.1 ns 145.70 ns 113.75 ns 56.43 12810 B 7.35
NSubstitute 5,770.4 ns 25.28 ns 21.11 ns 19.49 9264 B 5.31
FakeItEasy 217,348.2 ns 1,722.76 ns 1,527.18 ns 733.93 15755 B 9.03
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 2.63GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Property N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 525.2 ns 22.82 ns 21.35 ns 0.98 2472 B 1.00
Mockolate 1 536.4 ns 14.76 ns 13.81 ns 1.00 2472 B 1.00
Imposter 1 196.7 ns 5.35 ns 4.74 ns 0.37 664 B 0.27
TUnitMocks 1 451.2 ns 2.25 ns 1.88 ns 0.84 1696 B 0.69
Moq 1 11,936.8 ns 43.66 ns 38.70 ns 22.27 10641 B 4.30
NSubstitute 1 7,817.5 ns 52.40 ns 46.45 ns 14.58 11720 B 4.74
FakeItEasy 1 8,943.5 ns 76.24 ns 71.31 ns 16.68 11508 B 4.66
baseline* 10 1,068.2 ns 9.78 ns 9.15 ns 0.98 2976 B 1.00
Mockolate 10 1,089.1 ns 25.48 ns 23.83 ns 1.00 2976 B 1.00
Imposter 10 372.9 ns 6.06 ns 5.67 ns 0.34 952 B 0.32
TUnitMocks 10 1,606.2 ns 26.66 ns 23.64 ns 1.48 4048 B 1.36
Moq 10 19,237.0 ns 115.81 ns 108.33 ns 17.67 18721 B 6.29
NSubstitute 10 17,589.2 ns 150.54 ns 140.81 ns 16.16 21585 B 7.25
FakeItEasy 10 20,327.6 ns 53.38 ns 47.32 ns 18.67 31546 B 10.60
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
Intel Xeon 6973P-C 3.60GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v4

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Callback Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 404.4 ns 6.49 ns 6.07 ns 1.16 1608 B 1.00
Mockolate 350.0 ns 8.01 ns 7.49 ns 1.00 1608 B 1.00
Imposter 232.9 ns 2.71 ns 2.40 ns 0.67 744 B 0.46
TUnitMocks 527.9 ns 8.81 ns 8.24 ns 1.51 2064 B 1.28
Moq 38,266.9 ns 724.07 ns 641.87 ns 109.37 9086 B 5.65
NSubstitute 3,539.6 ns 49.05 ns 45.88 ns 10.12 7896 B 4.91
FakeItEasy 3,157.0 ns 49.81 ns 41.59 ns 9.02 6964 B 4.33
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 9V74 3.69GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 10.0.14 (10.0.14, 10.0.1426.52326), X64 RyuJIT x86-64-v4

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Indexer N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 532.9 ns 13.90 ns 11.60 ns 0.75 3.81 KB 1.00
Mockolate 1 714.7 ns 7.95 ns 7.44 ns 1.00 3.81 KB 1.00
Imposter 1 285.6 ns 1.37 ns 1.14 ns 0.40 1.19 KB 0.31
Moq 1 133,811.3 ns 389.24 ns 345.05 ns 187.24 20.37 KB 5.34
NSubstitute 1 7,346.4 ns 50.20 ns 44.50 ns 10.28 12.78 KB 3.35
FakeItEasy 1 7,685.8 ns 57.60 ns 53.88 ns 10.75 13.63 KB 3.57
baseline* 10 1,613.5 ns 29.65 ns 27.73 ns 0.85 4.87 KB 1.00
Mockolate 10 1,901.8 ns 11.33 ns 10.05 ns 1.00 4.87 KB 1.00
Imposter 10 710.7 ns 7.26 ns 6.79 ns 0.37 2.24 KB 0.46
Moq 10 141,756.7 ns 230.20 ns 204.06 ns 74.54 29.89 KB 6.14
NSubstitute 10 17,429.0 ns 80.43 ns 67.16 ns 9.16 25.58 KB 5.26
FakeItEasy 10 16,266.4 ns 88.73 ns 78.66 ns 8.55 32.97 KB 6.77

baseline* rows show the corresponding Mockolate benchmark from the most recent successful main branch build with results, for regression comparison.

github-actions Bot added a commit that referenced this pull request Oct 31, 2026
github-actions Bot added a commit that referenced this pull request Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant