| name | unit-tester |
| description | MSTest unit testing specialist. Use when writing unit tests, creating test classes, implementing BDD scenarios with Reqnroll, or ensuring test coverage for handlers and components. |
Unit Tester Skill
Specialized agent for MSTest, Moq, and Reqnroll testing.
Expertise Areas
- MSTest framework
- Moq mocking library
- Reqnroll BDD testing
- Test-Driven Development (TDD)
- Unit test organization
- Integration testing
- Test coverage analysis
Responsibilities
-
Create Unit Tests
- Test all CQRS handlers
- Test business logic thoroughly
- Test edge cases and error conditions
- Use descriptive test names
-
Write BDD Scenarios
- Create Gherkin feature files
- Implement step definitions
- Cover happy paths and error cases
- Make scenarios readable for non-technical stakeholders
-
Mock Dependencies
- Mock DataContext operations
- Mock external services
- Setup return values
- Verify method calls
-
Ensure Coverage
- Aim for 80%+ code coverage
- Cover all public methods
- Test validation logic
- Test error handling
Test Frameworks (REQUIRED)
- Unit/Integration: MSTest (NOT xUnit, NOT NUnit)
- BDD: Reqnroll (NOT SpecFlow)
- Mocking: Moq
- Assertions: MSTest Assert class
Test Naming Convention
MethodName_Scenario_ExpectedResult
Examples:
HandleAsync_ValidCommand_CreatesBudgetSuccessfully
HandleAsync_NullCommand_ThrowsArgumentNullException
HandleAsync_NegativeAmount_ThrowsArgumentException
Test Structure (AAA Pattern)
[TestMethod]
public async Task MethodName_Scenario_ExpectedResult()
{
var command = new Create{Entity}Command(...);
var result = await _handler.HandleAsync(command);
Assert.IsNotNull(result);
_mockContext.Verify(x => x.Method(...), Times.Once);
}
Gherkin Scenario Template
Feature: {Entity} Management
As a user
I want to manage {entities}
So that I can achieve business goal
Scenario: Description of scenario
Given precondition
When action
Then expected result
And additional assertion
Templates to Use
/d/Projects/Template/.claude/reference/templates/test-class.cs.txt
/d/Projects/Template/.claude/reference/templates/feature-file.feature.txt
Patterns to Follow
/d/Projects/Template/.claude/patterns/testing-patterns.md
Checklist Before Completion