J
javascript-typescript-jest
by @githubv
4.5(317)
Provide best practices for writing JavaScript/TypeScript tests with Jest, including mocking strategies, test structure, and common patterns.
Installation
npx skills add github/awesome-copilot --skill javascript-typescript-jestcompare_arrows
Before / After Comparison
1 组Before
When writing JavaScript/TypeScript tests, the lack of unified Jest best practices leads to low test code quality and difficult maintenance. Insufficient test coverage makes it hard to ensure code quality.
After
By following Jest best practices, test code becomes clearly structured, easy to maintain, and mock strategies are efficient. This significantly improves testing efficiency and code quality, ensuring application stability.
SKILL.md
Test Structure
- Name test files with
.test.tsor.test.jssuffix - Place test files next to the code they test or in a dedicated
__tests__directory - Use descriptive test names that explain the expected behavior
- Use nested describe blocks to organize related tests
- Follow the pattern:
describe('Component/Function/Class', () => { it('should do something', () => {}) })
Effective Mocking
- Mock external dependencies (APIs, databases, etc.) to isolate your tests
- Use
jest.mock()for module-level mocks - Use
jest.spyOn()for specific function mocks - Use
mockImplementation()ormockReturnValue()to define mock behavior - Reset mocks between tests with
jest.resetAllMocks()inafterEach
Testing Async Code
- Always return promises or use async/await syntax in tests
- Use
resolves/rejectsmatchers for promises - Set appropriate timeouts for slow tests with
jest.setTimeout()
Snapshot Testing
- Use snapshot tests for UI components or complex objects that change infrequently
- Keep snapshots small and focused
- Review snapshot changes carefully before committing
Testing React Components
- Use React Testing Library over Enzyme for testing components
- Test user behavior and component accessibility
- Query elements by accessibility roles, labels, or text content
- Use
userEventoverfireEventfor more realistic user interactions
Common Jest Matchers
- Basic:
expect(value).toBe(expected),expect(value).toEqual(expected) - Truthiness:
expect(value).toBeTruthy(),expect(value).toBeFalsy() - Numbers:
expect(value).toBeGreaterThan(3),expect(value).toBeLessThanOrEqual(3) - Strings:
expect(value).toMatch(/pattern/),expect(value).toContain('substring') - Arrays:
expect(array).toContain(item),expect(array).toHaveLength(3) - Objects:
expect(object).toHaveProperty('key', value) - Exceptions:
expect(fn).toThrow(),expect(fn).toThrow(Error) - Mock functions:
expect(mockFn).toHaveBeenCalled(),expect(mockFn).toHaveBeenCalledWith(arg1, arg2)
User Reviews (0)
Write a Review
Effect
Usability
Docs
Compatibility
No reviews yet
Statistics
Installs10.6K
Rating4.5 / 5.0
Version
Updated2026年5月21日
Comparisons1
User Rating
4.5(317)
5
23%
4
51%
3
23%
2
2%
1
0%
Rate this Skill
0.0
Compatible Platforms
🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI
Timeline
Created2026年3月16日
Last Updated2026年5月21日