Skip to content

Commit 5744bcf

Browse files
devillclaude
andcommitted
Document default parameter values feature in SpecRecLogs
๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 684e9fc commit 5744bcf

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

โ€ŽREADME.mdโ€Ž

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,53 @@ Result was: 28
859859

860860
Parameters are extracted from preamble sections and passed to test methods. Supports built-in types, arrays, and dictionaries. Error messages provide copy-paste preamble sections when parameters are missing.
861861

862+
#### Default Parameter Values
863+
864+
SpecRecLogs supports default parameter values, allowing you to omit common parameters from verified files and only specify values that differ from defaults:
865+
866+
```csharp
867+
[Theory]
868+
[SpecRecLogs]
869+
public async Task TestUser(CallLog callLog, string userName = "John Doe", bool isAdmin = false, int age = 34)
870+
{
871+
var service = Parrot.Create<IUserService>(callLog);
872+
873+
var user = service.CreateUser(userName, isAdmin, age);
874+
875+
callLog.AppendLine($"Created user: {userName} (Admin: {isAdmin}, Age: {age})");
876+
await callLog.Verify();
877+
}
878+
```
879+
880+
**Verified files can now omit parameters with defaults:**
881+
882+
**AllDefaults.verified.txt** (uses all default values):
883+
```
884+
๐Ÿฆœ CreateUser:
885+
๐Ÿ”ธ name: "John Doe"
886+
๐Ÿ”ธ isAdmin: False
887+
๐Ÿ”ธ age: 34
888+
๐Ÿ”น Returns: <id:user1>
889+
890+
Created user: John Doe (Admin: False, Age: 34)
891+
```
892+
893+
**PartialOverride.verified.txt** (overrides only isAdmin):
894+
```
895+
๐Ÿ“‹ <Test Inputs>
896+
๐Ÿ”ธ isAdmin: True
897+
898+
๐Ÿฆœ CreateUser:
899+
๐Ÿ”ธ name: "John Doe"
900+
๐Ÿ”ธ isAdmin: True
901+
๐Ÿ”ธ age: 34
902+
๐Ÿ”น Returns: <id:user2>
903+
904+
Created user: John Doe (Admin: True, Age: 34)
905+
```
906+
907+
This eliminates repetition when many test cases share the same base values, while still allowing full customization when needed.
908+
862909
## Planned Components
863910

864911
- **Automated test discovery**: Generates call logs automatically to create 100% branch coverage of SUT

0 commit comments

Comments
ย (0)