Skip to content

docs: align the agent guide with Mockolate - #915

Merged
vbreuss merged 2 commits into
mainfrom
docs/align-agent-guide-with-mockolate
Oct 30, 2026
Merged

vbreuss merged 2 commits into
mainfrom
docs/align-agent-guide-with-mockolate

Conversation

@vbreuss

@vbreuss vbreuss commented Oct 29, 2026

Copy link
Copy Markdown
Member

The agent guide was adapted from aweXpect and kept goals and rules that do not fit a source-generated mocking library (assertion-library async rules, generic Testably framing, Docusaurus features the docs barely use), while missing the rules Mockolate actually depends on: generated code that compiles in every consumer, the generator/analyzer split, arity duplication, the allocation-free recording path and the test conventions. Several workflow and structure claims were also out of date.

The agent guide was adapted from aweXpect and kept goals and rules that do not fit a source-generated mocking library (assertion-library async rules, generic Testably framing, Docusaurus features the docs barely use), while missing the rules Mockolate actually depends on: generated code that compiles in every consumer, the generator/analyzer split, arity duplication, the allocation-free recording path and the test conventions. Several workflow and structure claims were also out of date.
@vbreuss vbreuss self-assigned this Oct 29, 2026
Copilot AI balanced review requested due to automatic review settings October 29, 2026 23:11
@vbreuss vbreuss added the documentation Improvements or additions to documentation label Oct 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@vbreuss
vbreuss enabled auto-merge (squash) October 29, 2026 23:14
@vbreuss
vbreuss disabled auto-merge October 29, 2026 23:25
Makes the agent guide visible and editable from the IDE next to the other repository files.
Copilot AI balanced review requested due to automatic review settings October 29, 2026 23:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@vbreuss
vbreuss enabled auto-merge (squash) October 29, 2026 23:26
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Test Results

    31 files  ±0      31 suites  ±0   44m 27s ⏱️ - 6m 28s
 4 529 tests ±0   4 529 ✅ ±0  0 💤 ±0  0 ❌ ±0 
28 808 runs  ±0  28 808 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 8d11c7b. ± Comparison against base commit 8a369c4.

This pull request removes 22 and adds 16 tests. Note that renamed tests count towards both.
 x-myHeader3: baz, True)
)
Mockolate.Internal.Tests.Internals.WildcardTests ‑ ShouldSupportMultilineStrings(
Mockolate.Internal.Tests.Internals.WildcardTests ‑ ShouldSupportMultilineStrings(
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(bool Equals(object obj);
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(bool Equals(object obj);
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
Mockolate.Tests.Web.ItExtensionsTests+IsHttpContentTests+WithHeadersTests ‑ ShouldVerifyStringHeaders(x-myHeader1 : foo
Mockolate.Tests.Web.ItExtensionsTests+IsHttpContentTests+WithHeadersTests ‑ ShouldVerifyStringHeaders(x-myHeader1 : foo
…
Mockolate.Internal.Tests.Internals.WildcardTests ‑ ShouldSupportMultilineStrings(
)
Mockolate.Internal.Tests.Internals.WildcardTests ‑ ShouldSupportMultilineStrings(
)
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(bool Equals(object obj);
int GetHashCode();, public override bool Equals(object obj), public override int GetHashCode())
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(bool Equals(object obj);
int GetHashCode();, public override bool Equals(object obj), public override int GetHashCode())
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
bool Equals(object obj);, public override string ToString(), public override bool Equals(object obj))
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
bool Equals(object? obj);
int GetHashCode();, public override string ToString(), public override int GetHashCode(), public override bool Equals(object? obj))
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
int GetHashCode();, public override string ToString(), public override int GetHashCode())
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
bool Equals(object obj);, public override string ToString(), public override bool Equals(object obj))
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
bool Equals(object? obj);
int GetHashCode();, public override string ToString(), public override int GetHashCode(), public override bool Equals(object? obj))
Mockolate.SourceGenerators.Tests.MethodSetupsTests ‑ WhenImplementingObjectMethods_ShouldUseSpecialInterfaces(string ToString();
int GetHashCode();, public override string ToString(), public override int GetHashCode())
…

@vbreuss
vbreuss merged commit 4ef454b into main Oct 30, 2026
21 checks passed
@vbreuss
vbreuss deleted the docs/align-agent-guide-with-mockolate branch October 30, 2026 00:02
@github-actions

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
INTEL XEON PLATINUM 8573C 2.99GHz, 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

Method N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 270.8 ns 2.96 ns 2.47 ns 0.77 1976 B 1.00
Mockolate 1 353.0 ns 11.38 ns 10.65 ns 1.00 1976 B 1.00
Imposter 1 219.1 ns 7.28 ns 6.81 ns 0.62 928 B 0.47
TUnitMocks 1 469.8 ns 17.06 ns 15.12 ns 1.33 2088 B 1.06
Moq 1 83,427.2 ns 672.72 ns 596.35 ns 236.51 14930 B 7.56
NSubstitute 1 5,281.9 ns 89.70 ns 79.52 ns 14.97 9280 B 4.70
FakeItEasy 1 4,286.7 ns 36.51 ns 34.15 ns 12.15 8257 B 4.18
baseline* 10 496.7 ns 13.62 ns 12.74 ns 0.65 2192 B 1.00
Mockolate 10 759.7 ns 12.16 ns 11.37 ns 1.00 2192 B 1.00
Imposter 10 488.4 ns 11.43 ns 10.13 ns 0.64 1792 B 0.82
TUnitMocks 10 1,584.4 ns 24.89 ns 23.28 ns 2.09 3840 B 1.75
Moq 10 85,785.6 ns 1,660.81 ns 1,472.26 ns 112.95 18907 B 8.63
NSubstitute 10 7,609.5 ns 102.43 ns 90.81 ns 10.02 11800 B 5.38
FakeItEasy 10 7,144.4 ns 185.80 ns 173.80 ns 9.41 15780 B 7.20
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 3.24GHz, 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* 20.24 ns 0.276 ns 0.258 ns 1.04 160 B 1.00
Mockolate 19.40 ns 0.661 ns 0.618 ns 1.00 160 B 1.00
Imposter 127.64 ns 4.737 ns 4.431 ns 6.58 576 B 3.60
TUnitMocks 37.48 ns 1.009 ns 0.943 ns 1.93 216 B 1.35
Moq 1,447.88 ns 8.376 ns 7.835 ns 74.69 2096 B 13.10
NSubstitute 1,949.48 ns 4.214 ns 3.942 ns 100.56 5048 B 31.55
FakeItEasy 1,830.68 ns 39.143 ns 36.614 ns 94.43 2763 B 17.27
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 3.18GHz, 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* 310.9 ns 9.25 ns 8.65 ns 0.98 1744 B 1.00
Mockolate 318.7 ns 8.36 ns 7.82 ns 1.00 1744 B 1.00
Imposter 193.1 ns 1.03 ns 0.97 ns 0.61 512 B 0.29
TUnitMocks 195.4 ns 6.01 ns 5.62 ns 0.61 1392 B 0.80
Moq 16,186.4 ns 59.49 ns 49.68 ns 50.82 12810 B 7.35
NSubstitute 6,004.0 ns 89.63 ns 83.84 ns 18.85 9264 B 5.31
FakeItEasy 216,484.2 ns 1,268.79 ns 1,186.82 ns 679.68 15755 B 9.03
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

Property N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 328.3 ns 5.68 ns 5.31 ns 0.83 2472 B 1.00
Mockolate 1 395.8 ns 3.92 ns 3.47 ns 1.00 2472 B 1.00
Imposter 1 142.4 ns 0.19 ns 0.15 ns 0.36 664 B 0.27
TUnitMocks 1 388.8 ns 5.81 ns 5.15 ns 0.98 1696 B 0.69
Moq 1 7,929.9 ns 99.46 ns 93.03 ns 20.03 10513 B 4.25
NSubstitute 1 5,441.7 ns 54.70 ns 45.67 ns 13.75 11720 B 4.74
FakeItEasy 1 5,912.9 ns 65.47 ns 61.24 ns 14.94 11508 B 4.66
baseline* 10 794.2 ns 4.16 ns 3.47 ns 0.98 2976 B 1.00
Mockolate 10 813.0 ns 12.55 ns 11.74 ns 1.00 2976 B 1.00
Imposter 10 282.7 ns 3.40 ns 3.02 ns 0.35 952 B 0.32
TUnitMocks 10 1,231.5 ns 13.55 ns 12.01 ns 1.52 4048 B 1.36
Moq 10 12,912.0 ns 160.25 ns 149.90 ns 15.89 17441 B 5.86
NSubstitute 10 12,470.5 ns 140.89 ns 124.89 ns 15.34 21585 B 7.25
FakeItEasy 10 13,911.4 ns 370.46 ns 346.53 ns 17.12 31546 B 10.60
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 9V74 2.86GHz, 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

Callback Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 675.4 ns 8.29 ns 7.75 ns 2.26 1608 B 1.00
Mockolate 298.8 ns 3.78 ns 3.35 ns 1.00 1608 B 1.00
Imposter 239.8 ns 1.79 ns 1.59 ns 0.80 744 B 0.46
TUnitMocks 520.4 ns 1.38 ns 1.23 ns 1.74 2064 B 1.28
Moq 71,087.0 ns 178.29 ns 139.20 ns 237.96 9096 B 5.66
NSubstitute 4,179.0 ns 5.52 ns 4.90 ns 13.99 7896 B 4.91
FakeItEasy 4,194.1 ns 12.88 ns 11.42 ns 14.04 6970 B 4.33
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 2.88GHz, 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

Indexer N Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 1 887.8 ns 7.54 ns 7.05 ns 0.89 3.77 KB 1.00
Mockolate 1 1,003.1 ns 18.85 ns 15.74 ns 1.00 3.77 KB 1.00
Imposter 1 372.3 ns 2.60 ns 2.30 ns 0.37 1.19 KB 0.32
Moq 1 223,569.1 ns 615.61 ns 545.72 ns 222.92 20.37 KB 5.41
NSubstitute 1 11,024.3 ns 21.59 ns 18.03 ns 10.99 12.84 KB 3.41
FakeItEasy 1 12,041.1 ns 15.72 ns 13.12 ns 12.01 13.63 KB 3.62
baseline* 10 2,446.2 ns 14.59 ns 13.64 ns 0.93 4.82 KB 1.00
Mockolate 10 2,618.0 ns 4.17 ns 3.48 ns 1.00 4.82 KB 1.00
Imposter 10 923.6 ns 3.29 ns 2.91 ns 0.35 2.24 KB 0.47
Moq 10 236,320.0 ns 931.60 ns 825.84 ns 90.27 29.89 KB 6.20
NSubstitute 10 25,489.9 ns 99.52 ns 93.09 ns 9.74 25.63 KB 5.32
FakeItEasy 10 25,550.4 ns 185.16 ns 164.14 ns 9.76 32.97 KB 6.84

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 30, 2026
github-actions Bot added a commit that referenced this pull request Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants