review-bench/andresharpe_dotbot/write-unit-tests
Claude Code and agent skill by review-bench/andresharpe_dotbot
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Write comprehensive unit tests with proper setup, assertions, and coverage — .NET override with mock completeness guidance
Install
npx vskill@latest install review-bench/andresharpe_dotbot/write-unit-testsSKILL.md
Write Unit Tests
Guide for writing effective unit tests that verify behavior and catch regressions.
When to Use
- Testing pure logic and business rules
- Verifying individual components in isolation
- Testing edge cases and error conditions
- TDD red-green-refactor cycle
Test Structure (Arrange-Act-Assert)
Test Naming
Use descriptive names that explain what's being tested:
MethodName_Scenario_ExpectedBehaviorMethodName_WhenCondition_ShouldDoSomethingMethodName_GivenInput_ReturnsExpectedOutput
Examples:
Calculate_WithNegativeNumber_ThrowsArgumentExceptionProcessOrder_WhenInventoryInsufficient_ReturnsFailureResultFormatDate_GivenNull_ReturnsEmptyString
Test Coverage
1. Happy Path
- Normal, expected inputs
- Successful execution
- Expected outputs
2. Edge Cases
- Boundary values (min, max, zero, empty)
- Null inputs
- Empty collections
- Special characters
3. Error Scenarios
- Invalid inputs
- Exceptions
- Validation failures
- Constraint violations
Mocking & Isolation
- Use test doubles for dependencies
- Mock external services, databases, APIs
- Keep tests fast and deterministic
- Don't mock what you don't own (value objects, DTOs)
.NET Test Mock Completeness
When writing or modifying tests (xUnit, NUnit, MSTest with Moq/NSubstitute):
- Trace the full call graph of the method under test. Every injected dependency invoked (directly or transitively) must be mocked — not just the primary ones.
- Study existing test fixtures in the same test class. Identify services that need default mock returns (e.g.,
_languageService.GetAllLanguages()returning an empty list). Replicate these in your test setup. - Verify test configuration matches test intent — if a test expects validation to fail, ensure the relevant setting is enabled in the fixture (e.g.,
isHoneypotEnabled: truefor a honeypot test). - Run tests after writing them — do not mark the task done until all new tests pass.
Assertions
Use fluent assertions for clarity:
Best Practices
- One assertion per test - Test one thing at a time
- Fast execution - No I/O, no sleeps, no real dependencies
- Deterministic - Same inputs always produce same results
- Independent - Tests don't depend on each other
- Readable - Clear setup, action, and verification
- Maintainable - Easy to update when requirements change
Common Patterns
Testing Exceptions
Testing Async Methods
Theory Tests (Multiple Inputs)
Common Pitfalls
- Testing implementation details
- Tests that depend on execution order
- Flaky tests (random, time-dependent)
- Testing too much in one test
- Not testing error cases
- Using real dependencies (databases, files, network)
- Missing mock setups for transitive dependencies (NullReferenceException at runtime)
Test Organization
Checklist
- [ ] Test name clearly describes what's being tested
- [ ] Arrange-Act-Assert structure
- [ ] Happy path covered
- [ ] Edge cases covered
- [ ] Error scenarios covered
- [ ] Dependencies are mocked
- [ ] All transitive dependencies have mock setups (traced full call graph)
- [ ] Existing fixture patterns replicated in new test setup
- [ ] Assertions are clear and specific
- [ ] Test is fast (< 100ms)
- [ ] Test is independent of others
- [ ] Tests actually pass when run
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingstacks/dotnet/recipes/skills/write-unit-tests/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/review-bench/andresharpe_dotbot/write-unit-tests)