Under strict TDD, the correct sequence is Red-Green-Refactor: 1. Red: write a minimal failing test for a valid email such as `user@example.com` and confirm it fails for the expected reason, not because of a typo or missing setup. 2. Green: implement the smallest possible `isValidEmail(email)` logic needed to make that single test pass. 3. Refactor: clean up naming or parsing logic while keeping the tests green. 4. Repeat with additional failing tests for invalid inputs like missing `@`, missi...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill common-tdd --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Common Tdd?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-common-tdd-fab1259e)More formats (shields.io, HTML) on the badges page.
Under strict TDD, the correct sequence is Red-Green-Refactor:
1. Red: write a minimal failing test for a valid email such as `user@example.com` and confirm it fails for the expected reason, not because of a typo or missing setup.
2. Green: implement the smallest possible `isValidEmail(email)` logic needed to make that single test pass.
3. Refactor: clean up naming or parsing logic while keeping the tests green.
4. Repeat with additional failing tests for invalid inputs like missing `@`, missing domain, empty string, whitespace-only input, and malformed addresses such as `user@` or `@example.com`.
Each test should follow Arrange-Act-Assert:
- Arrange: define the email input and expected boolean result.
- Act: call the validation function once.
- Assert: verify the returned value matches the expectation.
A solid TDD plan for this function is:
- First failing test: returns `true` for `user@example.com`
- Second failing test: returns `false` for `userexample.com`
- Third failing test: returns `false` for `user@`
- Fourth failing test: returns `false` for `@example.com`
- Fifth failing test: returns `false` for `""`
Important guardrail: do not write the full validator up front. Only add the minimum logic required to satisfy the current failing test, then iterate until the behavior is covered and coverage thresholds are met.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!