Giter Club home page Giter Club logo

vue-testing-library's Introduction

Vue Testing Library


lizard

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

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


Read the docs | Edit the docs



Build Status Coverage Status GitHub version npm version

MIT License Join the community on Spectrum

Table of Contents

Installation

This module is distributed via npm and should be installed as one of your project's devDependencies:

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

This library has peerDependencies listings for Vue and vue-template-compiler.

You may also be interested in installing jest-dom so you can use the custom Jest matchers.

A simple example

<!-- TestComponent.vue -->
<template>
  <div>
    <p>Times clicked: {{ count }}</p>
    <button @click="increment">increment</button>
  </div>
</template>

<script>
  export default {
    data: () => ({
      count: 0,
    }),
    methods: {
      increment() {
        this.count++
      },
    },
  }
</script>
// TestComponent.spec.js
import {render, fireEvent} from '@testing-library/vue'
import TestComponent from './TestComponent.vue'

test('increments value on click', async () => {
  // The render method returns a collection of utilities to query the component.
  const {getByText} = render(TestComponent)

  // getByText returns the first matching node for the provided text, and
  // throws an error if no elements match or if more than one match is found.
  getByText('Times clicked: 0')

  // `button` is the actual DOM element.
  const button = getByText('increment')

  // Dispatch a couple of native click events.
  await fireEvent.click(button)
  await fireEvent.click(button)

  getByText('Times clicked: 2')
})

More examples

You'll find examples of testing with different situations and popular libraries in the test directory.

Some included are:

Feel free to contribute with more examples!

Docs

Read the docs | Edit the docs

Typings

The TypeScript type definitions are in the DefinitelyTyped repo and bundled with Vue Testing Library.

ESLint support

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

License

MIT

Contributors

dfcook afontcu eunjae-lee tim-maguire samdelacruz ankitsinghaniyaz lindgr3n kentcdodds brennj makeupsomething mb200 Oluwasetemi cimbul alexkrolick edufarre SandraDml arnaublanche NoelDeMartin chiptus bennettdams mediafreakch afenton90 cilice

vue-testing-library's People

Contributors

afenton90 avatar afontcu avatar agualis avatar ankitsinghaniyaz avatar arnaublanche avatar bennettdams avatar chiptus avatar cilice avatar dczajkowski avatar dependabot[bot] avatar dfcook avatar edufarre avatar eunjae-lee avatar imgbot[bot] avatar lindgr3n avatar makeupsomething avatar mediafreakch avatar michaeldeboey avatar oluwasetemi avatar sobolevn avatar tim-maguire avatar wilf312 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.