Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🦎 Simple and complete Vue.js testing utilities that encourage good testing practices.

License

NotificationsYou must be signed in to change notification settings

testing-library/vue-testing-library

Repository files navigation


lizard

Simple and complete Vue.js testing utilities that encourage good testing practices.

Vue Testing Library is a lightweight adapter built on top ofDOM Testing Library and@vue/test-utils.


Read the docs |Edit the docs



Coverage StatusGitHub versionnpm versionDiscordMIT License

Table of Contents

Installation

This module is distributed vianpm and should be installed as one of yourproject'sdevDependencies:

npm install --save-dev @testing-library/vue

This library haspeerDependencies listings forVue 3 and@vue/compiler-sfc.

You may also be interested in installingjest-dom so you can usethe customJest matchers.

If you're using Vue 2, please install version 5 of the library:

npm install --save-dev @testing-library/vue@^5

A basic example

<template><p>Times clicked: {{ count }}</p><button@click="increment">increment</button></template><script>exportdefault{name:'Button',data:()=>({count:0,}),methods:{increment(){this.count++},},}</script>
import{render,screen,fireEvent}from'@testing-library/vue'importButtonfrom'./Button'test('increments value on click',async()=>{// The `render` method renders the component into the document.// It also binds to `screen` all the available queries to interact with// the component.render(Button)// queryByText returns the first matching node for the provided text// or returns null.expect(screen.queryByText('Times clicked: 0')).toBeTruthy()// getByText returns the first matching node for the provided text// or throws an error.constbutton=screen.getByText('increment')// Click a couple of times.awaitfireEvent.click(button)awaitfireEvent.click(button)expect(screen.queryByText('Times clicked: 2')).toBeTruthy()})

You might want to installjest-dom to add handy assertions suchas.toBeInTheDocument(). In the example above, you could writeexpect(screen.getByText('Times clicked: 0')).toBeInTheDocument().

UsingbyText queries it's not the only nor the best way to query forelements. ReadWhich query should I use? to discoveralternatives. In the example above,getByRole('button', {name: 'increment'})is possibly the best option to get the button element.

More examples

You'll find examples of testing with different situations and popular librariesinthe test directory.

Some included are:

Feel free to contribute with more examples!

Guiding Principles

The more your tests resemble the way your software is used, the moreconfidence they can give you.

We try to only expose methods and utilities that encourage you to write teststhat closely resemble how your Vue components are used.

Utilities are included in this project based on the following guidingprinciples:

  1. If it relates to rendering components, it deals with DOM nodes rather thancomponent instances, nor should it encourage dealing with componentinstances.
  2. It should be generally useful for testing individual Vue components or fullVue applications.
  3. Utility implementations and APIs should be simple and flexible.

At the end of the day, what we want is for this library to be prettylight-weight, simple, and understandable.

Docs

Read the docs |Edit the docs

Typings

Please note that TypeScript 4.X is required.

The TypeScript type definitions are in thetypes directory.

ESLint support

If you want to lint test files that use Vue Testing Library, you can use theofficial plugin:eslint-plugin-testing-library.

Issues

Looking to contribute? Look for theGood First Issuelabel.

🐛 Bugs

Pleasefile an issue for bugs, missing documentation, orunexpected behavior.

See Bugs

💡 Feature Requests

Please file an issue to suggest new features. Vote on featurerequests by adding a 👍. This helps maintainers prioritize what to work on.

❓ Questions

For questions related to using the library, please visit a support communityinstead of filing an issue on GitHub.

License

MIT

Contributors

dfcookafontcueunjae-leetim-maguiresamdelacruzankitsinghaniyazlindgr3nkentcdoddsbrennjmakeupsomethingmb200OluwasetemicimbulalexkrolickedufarreSandraDmlarnaublancheNoelDeMartinchiptusbennettdamsmediafreakchafenton90ciliceITenthusiasm


[8]ページ先頭

©2009-2025 Movatter.jp