<critical_constraints> ❌ NO tests without edge cases ❌ NO generic assertions (assertTrue) → use specific (assertEqual, toEqual) ❌ NO test dependencies → each test must be independent ✅ MUST follow Arrange-Act-Assert (AAA) pattern ✅ MUST mock external dependencies (APIs, DB, filesystem) ✅ MUST use descriptive test names (what + expected outcome) </critical_constraints>
<detection> Detect framework from existing tests: - Python default: pytest - JS/TS default: Jest - Java: JUnit - Ruby: RSpec - Go: testing package </detection><test_categories>
- •Normal cases: typical usage
- •Edge cases: empty, zero, max, boundary
- •Error cases: invalid input, exceptions
- •Type edges: None/null, wrong types
- •Performance: large inputs (if applicable) </test_categories>
code
def test_edge_empty(self):
assert func([]) == []
def test_error_raises(self):
with pytest.raises(ValueError):
func(invalid)
code
## JavaScript (Jest)
```javascript
describe('functionName', () => {
it('should return X when Y', () => {
expect(func(input)).toBe(expected);
});
it('should throw on invalid', () => {
expect(() => func(null)).toThrow(TypeError);
});
});