Book Image

Jasmine JavaScript Testing Update

By : Paulo Vitor Zacharias Ragonha
Book Image

Jasmine JavaScript Testing Update

By: Paulo Vitor Zacharias Ragonha

Overview of this book

Table of Contents (15 chapters)

Test runner: Karma


Remember we said back in the introduction that we could execute Jasmine without the need of a browser window? To do so, we are going to use PhantomJS, a scriptable headless WebKit browser (the same rendering engine that powers the Safari browser) and Karma, a test runner.

The setup is very simple; using NPM, we once again install some dependencies:

npm install –save-dev karma karma-jasmine karma-webpack karma-phantomjs-launcher es5-shim

The only strange dependency here is the es5-shim, which is used to give PhantomJS support for some ES5 features that it still is missing, and React requires.

The next step is creating a configuration file, named karma.conf.js, for Karma at the project's' root folder:

module.exports = function(config) {
  config.set({
    basePath: '.',

    frameworks: ['jasmine'],
    browsers: ['PhantomJS'],

    files: [
      // shim to workaroud PhantomJS 1.x lack of 'bind' support
      // see: https://github.com/ariya/phantomjs/issues/10522
      ...