Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/assertion-quality
Analyzes the variety and depth of assertions across test suites in any language.
Passed 13 of 18 test cases with the skill, and 11 of 18 without it.
and 1 more in the full report
4 fixed12 passed either way4 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Classify the assertion in this C# Moq test: ```csharp [TestMethod] public void SendNotification_TriggersEmailService() { var mockEmail = new Mock<IEmailService>(); var notifier = new Notifier(mockEmail.Object); notifier.Notify("Hello"); mockEmail.Verify(m => m.Send("Hello"), Times.Once); } ``` Which category does `mockEmail.Verify(...)` belong to in assertion quality evaluation?
| Checked | Without skill | With skill |
|---|---|---|
| Classifies mock verification calls under the State / Side-effect assertion category. | Missed | Passed |
The instructions your model reads when the skill loads.
Analyze test code in any supported language to measure how varied and meaningful the assertions are. Produce a metrics report that reveals whether tests verify different facets of correctness — not just "output equals X" but also structure, exceptions, state transitions, side effects, and invariants.
Language-specific guidance: Call the
test-analysis-extensionsskill to discover available extension files, then read the file matching the target codebase's language and framework (e.g.,dotnet.mdfor .NET,python.mdfor pytest,typescript.mdfor Jest,go.mdfor the standardtestingpackage). You MUST read the relevant extension file before classifying assertions, because assertion APIs differ significantly across frameworks.
Low assertion diversity signals shallow testing. Tests may pass while bugs hide in unasserted logic. Common symptoms:
| Problem | Symptom | Consequence |
|---|---|---|
| Trivial assertions | Test contains only Assert.IsNotNull(result) / assert result is not None / expect(x).toBeDefined() | Test passes but doesn't verify correctness |
| Single-value obsession | Always check one field or return value | Bugs in unasserted logic slip through |
| No negative assertions | Never check what shouldn't happen | Regressions sneak in through false positives |
| No state checks | Don't verify object state changes | Missed side-effects or lifecycle issues |
| No structural checks | Only assert top-level value | Bugs in nested objects go unnoticed |
| Assertion-free tests | Tests that call but don't verify | Code coverage lies; false security |
code-testing-generator agent (or any test-generation workflow) calls this skill as a pre-completion self-review step on freshly generated tests, before declaring the run finishedcode-testing-agent for any language, or writing-mstest-tests for MSTest specifically)test-anti-patterns)| Input | Required | Description |
|---|---|---|
| Test code | Yes | One or more test files or a test project directory to analyze |
test cases passed, vs 11 / 18 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.