vue-testing-best-practices
Comprehensive testing guidance for Vue.js projects covering unit, component, and end-to-end testing.
- Addresses 11 common testing challenges including async handling, composable testing, Pinia store setup, Suspense components, and Teleport queries
- Recommends Vitest for unit and component testing, Playwright for end-to-end testing, and Vue Test Utils for component interaction
- Covers testing patterns like black-box component approaches, snapshot test pitfalls, and browser vs. Node.js runner trade-offs
- Includes solutions for race conditions, lifecycle hook testing, injection errors, and async component rendering issues
Vue.js testing best practices, patterns, and common gotchas.
Testing
- Setting up test infrastructure for Vue 3 projects → See testing-vitest-recommended-for-vue
- Tests keep breaking when refactoring component internals → See testing-component-blackbox-approach
- Tests fail intermittently with race conditions → See testing-async-await-flushpromises
- Composables using lifecycle hooks or inject fail to test → See testing-composables-helper-wrapper
- Getting "injection Symbol(pinia) not found" errors in tests → See testing-pinia-store-setup
- Components with async setup won't render in tests → See testing-suspense-async-components
- Snapshot tests keep passing despite broken functionality → See testing-no-snapshot-only
- Choosing end-to-end testing framework for Vue apps → See testing-e2e-playwright-recommended
- Tests need to verify computed styles or real DOM events → See testing-browser-vs-node-runners
- Testing components created with defineAsyncComponent fails → See async-component-testing
- Teleported modal content can't be found in wrapper queries → See teleport-testing-complexity
Reference
More from vuejs-ai/skills
vue-pinia-best-practices
Pinia stores, state management patterns, store setup, and reactivity with stores.
7.5Kvue-best-practices
MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.
7.1Kvue-debug-guides
Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.
6.0Kvue-router-best-practices
Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.
5.9Kcreate-adaptable-composable
Create a library-grade Vue composable that accepts maybe-reactive inputs (MaybeRef / MaybeRefOrGetter) so callers can pass a plain value, ref, or getter. Normalize inputs with toValue()/toRef() inside reactive effects (watch/watchEffect) to keep behavior predictable and reactive. Use this skill when user asks for creating adaptable or reusable composables.
5.9Kvue-options-api-best-practices
Vue 3 Options API style (data(), methods, this context). Each reference shows Options API solution only.
5.0K