ELRIWebSystem/Learning/vue/webpack/docs/unit.md

2.2 KiB

Unit Testing

This project offers two options for unit testing:

  1. Jest
  2. Karma and Mocha.

Jest

  • Jest: the test runner that launches JSDOM runs the tests and reports the results to us.

Files

  • setup.js

    Jest runs this file before it runs the unit tests. It sets the Vue production tip to false.

Mocking Dependencies

The Jest boilerplate comes with the ability to mock dependencies. See the mock functions guide for more details.

Karma and Mocha

  • Karma: the test runner that launches browsers, runs the tests and reports the results to us.
  • karma-webpack: the plugin for Karma that bundles our tests using Webpack.
  • Mocha: the test framework that we write test specs with.
  • Chai: test assertion library that provides better assertion syntax.
  • Sinon: test utility library that provides spies, stubs and mocks.

Chai and Sinon are integrated using karma-sinon-chai, so all Chai interfaces (should, expect, assert) and sinon are globally available in test files.

Files

  • index.js

    This is the entry file used by karma-webpack to bundle all the test code and source code (for coverage purposes). You can ignore it for the most part.

  • specs/

    This directory is where you write your actual tests. You can use full ES2015+ and all supported Webpack loaders in your tests.

  • karma.conf.js

    This is the Karma configuration file. See Karma docs for more details.

Running Tests in More Browsers

You can run the tests in multiple real browsers by installing more karma launchers and adjusting the browsers field in test/unit/karma.conf.js.

Mocking Dependencies

The Karma unit test boilerplate comes with inject-loader installed by default. For usage with *.vue components, see vue-loader docs on testing with mocks.