vue-unit-helper

Helpers for unit testing Vue components
1,301
Install
npm install vue-unit-helper
Latest Version:1.0.9
License:MIT
Last Updated:Apr 30, 2018
Links: GitHub  ·  npm
Maintainer: danielbrierton

CircleCI npm npm

vue-unit-helper

A helper function for unit testing Vue components

Installation

npm install --save-dev vue-unit-helper

Usage

Require vue-unit-helper into your test, and pass your Vue component definition into it. The object returned will allow you to directly access data properties, computed properties, methods, and lifecycle methods (under a $lifecycleMethods object).

Example

Counter.vue

<template>
  <p>2^{{ num }} = {{ twoToPowerOfNum }}</p>
  <button @click="increment">Increment</button>
  <button @click="decrement">Decrement</button>
</template>

<script>
  export default {
    name: 'Counter',
    data() {
    return {
        num: 0
      };
    },
    computed: {
      twoToPowerOfNum() {
        return Math.pow(2, this.num);
      }
    },
    methods: {
      increment() {
        this.num++;
      },
      decrement() {
        this.num--;
      }
    }
  };
</script>

Counter.spec.js

import Counter from '@/Counter';
import vueUnitHelper from 'vue-unit-helper';

describe('Counter', () => {
  it('should set twoToPowerOfNum computed property to 2 to the power of num', () => {
    // ARRANGE
    const counter = vueUnitHelper(Counter);
    counter.num = 4;

    // ACT
    const result = counter.twoToPowerOfNum;

    // ASSERT
    expect(result).to.equal(16);
  });

  it('should change twoToPowerOfNum computed property when num is changed', () => {
    // ARRANGE
    const counter = vueUnitHelper(Counter);
    counter.num = 4;
    const originalResult = counter.twoToPowerOfNum;
    counter.num = 5;

    // ACT
    const newResult = counter.twoToPowerOfNum;

    // ASSERT
    expect(originalResult).to.equal(16);
    expect(newResult).to.equal(32);
  });

  it('should increment num', () => {
    // ARRANGE
    const counter = vueUnitHelper(Counter);
    counter.num = 4;

    // ACT
    this.increment();

    // ASSERT
    expect(counter.num).to.equal(5);
  });

  it('should increment num', () => {
    // ARRANGE
    const counter = vueUnitHelper(Counter);
    counter.num = 4;

    // ACT
    this.decrement();

    // ASSERT
    expect(counter.num).to.equal(3);
  });
});

Related Packages

@atomic-testing/vue-3

The @atomic-testing/vue-3 package is a Vue 3 test adapter that extends Atomic Te...

4,609 5
vue3-snapshot-serializer

Vitest snapshot serializer for Vue 3 components

369,150 16
@vuetify/testing-library-dom

Simple and complete DOM testing utilities that encourage good testing practices.

15,432 0
stepci

Automated API Testing and Quality Assurance

140,730 1,872
vitest-browser-vue

Render Vue components in Vitest Browser Mode

5,213,984 79

Version History

Version Released License
1.0.9 MIT
1.0.8 MIT
1.0.7 MIT
1.0.6 MIT
1.0.5 MIT