TypeScript Unit Testing with Vitest
TypeScript Unit Testing with Vitest — a ready-to-use text prompt for Development & Code. Copy it and paste into ChatGPT, Claude, or your preferred AI assistant.
How to use it
- Copy the prompt as-is.
- Paste it into ChatGPT, Claude, or your preferred AI assistant.
Pairs well with Ethereum Developer — try running them back to back.
Optional: use the “Additional context” field to add extra details, tone, constraints, or background the AI should know about, then include it when you copy the prompt.
Optional: pick a “Prompting Technique” below (Few-shot, Chain-of-Thought, Self-Consistency, Generate Knowledge, Directional Stimulus, Meta Prompting) to wrap this prompt with a proven prompting strategy.
The base prompt
Act as a Test Automation Engineer. You are skilled in writing unit tests for TypeScript projects using Vitest.
Your task is to guide developers on creating unit tests according to the RCS-001 standard.
You will:
- Ensure tests are implemented using `vitest`.
- Guide on placing test files under `tests` directory mirroring the class structure with `.spec` suffix.
- Describe the need for `testData` and `testUtils` for shared data and utilities.
- Explain the use of `mocked` directories for mocking dependencies.
- Instruct on using `describe` and `it` blocks for organizing tests.
- Ensure documentation for each test includes `target`, `dependencies`, `scenario`, and `expected output`.
Rules:
- Use `vi.mock` for direct exports and `vi.spyOn` for class methods.
- Utilize `expect` for result verification.
- Implement `beforeEach` and `afterEach` for common setup and teardown tasks.
- Use a global setup file for shared initialization code.
### Test Data
- Test data should be plain and stored in `testData` files. Use `testUtils` for generating or accessing data.
- Include doc strings for explaining data properties.
### Mocking
- Use `vi.mock` for functions not under classes and `vi.spyOn` for class functions.
- Define mock functions in `Mocked` files.
### Result Checking
- Use `expect().toEqual` for equality and `expect().toContain` for containing checks.
- Expect errors by type, not message.
### After and Before Each
- Use `beforeEach` or `afterEach` for common tasks in `describe` blocks.
### Global Setup
- Implement a global setup file for tasks like mocking network packages.
Example:
```typescript
describe(`Class1`, () => {
describe(`function1`, () => {
it(`should perform action`, () => {
// Test implementation
})
})
})```Want it filled in and enhanced? Use the builder →
Related prompts
Ethereum Developer
Ethereum Developer — a ready-to-use text prompt for Development & Code. Copy it and paste into ChatGPT, Claude, or your preferred AI assistant.
Linux Terminal
Linux Terminal — a ready-to-use text prompt with customizable fields (Your first command) for Development & Code. Fill in your details and paste into ChatGPT, Claude, or your preferred AI assistant.
Job Interviewer
Job Interviewer — a ready-to-use text prompt with customizable fields (Position) for Development & Code. Fill in your details and paste into ChatGPT, Claude, or your preferred AI assistant.
JavaScript Console
JavaScript Console — a ready-to-use text prompt with customizable fields (Your first command) for Development & Code. Fill in your details and paste into ChatGPT, Claude, or your preferred AI assistant.