Skip to content

Commit 29d4977

Browse files
committed
broken links
1 parent db15d14 commit 29d4977

3 files changed

Lines changed: 7 additions & 7 deletions

File tree

v2/Generator/MultiGeneratorV2.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,13 +224,13 @@ public string[] SourceNoRSCG()
224224
text = text.Replace("(LICENSE.TXT)", $"({d.Generator!.Source}/LICENSE.TXT)");
225225
text = text.Replace("(docs/building.md)", $"({d.Generator!.Source}/docs/building.md)");
226226
text = text.Replace("(./", $"({d.Generator!.Source}/");
227-
227+
text = text.Replace("(skills/", $"({d.Generator!.Source}/skills");
228228

229229
text = text.Replace("Access them as a ReadOnlySpan<byte>", "Access them as a ReadOnlySpan\\<byte\\>");
230230
text = text.Replace("### ", "##### ");
231231
text = text.Replace("## ", "#### ");
232232
text = text.Replace("# ", "### ");
233-
233+
text= text.Replace("C###", "C#");
234234

235235
return text;
236236
}

v2/rscg_examples_site/docs/RSCG-Examples/KnockOff.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public partial class MyRepoStub(List<User> Users) : IMyRepo
8787
<!-- endSnippet -->
8888

8989
- **`[KnockOff]` + `partial class`** — KnockOff generates a base class that implements every member of `IMyRepo`. Your stub is a real class — define it once, reuse it across your entire test project. Pass it around, register it in DI, share it between test fixtures.
90-
- **Constructor parameters**`List<User> Users` is a primary constructor. Test data flows in naturally, just like any other C### class.
90+
- **Constructor parameters**`List<User> Users` is a primary constructor. Test data flows in naturally, just like any other C# class.
9191
- **Overrides are optional**`GetUser_` and `Update_` override the generated defaults. Only override what you need — everything else still works with [Return/Call](https://github.com/NeatooDotNet/KnockOff/docs/guides/methods.md), [Return(value)](https://github.com/NeatooDotNet/KnockOff/docs/reference/interceptor-api.md), or [When chains](https://github.com/NeatooDotNet/KnockOff/docs/guides/parameter-matching.md).
9292
- **Tighter type safety** — Every Return, Call, and When call is complete in a single step — no forgotten `.Returns()` that [silently breaks at runtime](https://github.com/NeatooDotNet/KnockOff/docs/type-safety.md). No manual `<T1, T2>` type parameters that can drift. [Details →](https://github.com/NeatooDotNet/KnockOff/docs/type-safety.md)
9393

@@ -178,7 +178,7 @@ myRepoKO.Verify();
178178
- **[Ref/out parameters](https://github.com/NeatooDotNet/KnockOff/docs/guides/ref-out-parameters.md)** — Natural lambda syntax with `ref`/`out` keywords. No special matchers or index-based access.
179179
- **[Multiple interfaces](https://github.com/NeatooDotNet/KnockOff/docs/guides/multiple-interfaces.md)** — Unified interceptors on one stub. No `.As<T>()` references or casting.
180180
- **[Tighter type safety](https://github.com/NeatooDotNet/KnockOff/docs/type-safety.md)** — Each Return/Call/When call is complete in one step — no forgotten `.Returns()` that silently breaks at runtime.
181-
- **[Parameter matching](https://github.com/NeatooDotNet/KnockOff/docs/guides/parameter-matching-comparison.md)**`Return((a, b) => a > 0 ? 100 : 0)` — standard C### conditionals instead of `Arg.Is<>` or `It.Is<>` per parameter.
181+
- **[Parameter matching](https://github.com/NeatooDotNet/KnockOff/docs/guides/parameter-matching-comparison.md)**`Return((a, b) => a > 0 ? 100 : 0)` — standard C# conditionals instead of `Arg.Is<>` or `It.Is<>` per parameter.
182182
- **Built-in argument capture**`LastArg`, `LastArgs`, `LastSetValue`, `LastSetEntry` — no manual `Arg.Do<>` or `Callback<>` setup.
183183
- **Event verification**`VerifyAdd()` / `VerifyRemove()` / `HasSubscribers` — not available in Moq or NSubstitute.
184184
- **Explicit Get/Set verification**`VerifyGet(Called)` / `VerifySet(Called)` for properties and indexers.
@@ -420,7 +420,7 @@ formatter.Format(Arg.Any<string>(), Arg.Any<int>()).Returns("int overload");
420420
**KnockOff:**
421421
<!-- snippet: readme-knockoff-any-value -->
422422
```cs
423-
// Explicit parameter types resolve the overload - standard C### syntax
423+
// Explicit parameter types resolve the overload - standard C# syntax
424424
stub.Format.Return((string input, bool uppercase) => "bool overload");
425425
stub.Format.Return((string input, int maxLength) => "int overload");
426426
```
@@ -475,7 +475,7 @@ stub.Format.Return((string input, bool uppercase) => uppercase ? input.ToUpper()
475475
**The Difference:**
476476
- Moq: `It.IsAny<bool>()` + `.Returns<string, bool>((input, uppercase) => ...)` to match any value and access arguments
477477
- NSubstitute: `Arg.Any<bool>()` + `x.ArgAt<bool>(1)` to match any value and access arguments
478-
- KnockOff: `(string input, bool uppercase)` - standard C### lambda with named, typed parameters
478+
- KnockOff: `(string input, bool uppercase)` - standard C# lambda with named, typed parameters
479479

480480
---
481481

@@ -544,7 +544,7 @@ Source generation turned out to be a great fit for AI code generation. The work
544544

545545
######### Claude Code Skill
546546

547-
KnockOff includes a [Claude Code skill](skills/knockoff/) that teaches Claude how to use the library. Copy the `skills/knockoff/` directory into your project and Claude Code will know how to create stubs, configure behavior, write tests with KnockOff, and migrate from Moq — without you explaining the API.
547+
KnockOff includes a [Claude Code skill](https://github.com/NeatooDotNet/KnockOff/skillsknockoff/) that teaches Claude how to use the library. Copy the `skills/knockoff/` directory into your project and Claude Code will know how to create stubs, configure behavior, write tests with KnockOff, and migrate from Moq — without you explaining the API.
548548

549549
The skill includes slash commands:
550550
- **`/knockoff:create-stub`** — Create a new stub class with the pattern of your choice
1 Byte
Binary file not shown.

0 commit comments

Comments
 (0)