Jasmine (JavaScript testing framework)

From Wiki @ Karl Jones dot com
Revision as of 11:20, 25 September 2016 by Karl Jones (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Jasmine is an open source unit testing framework for testing JavaScript code.

It uses the behavior-driven development model.

Description

It aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax.

Jasmine has a number of other features, such as custom matchers, spies, and support for asynchronous specifications.

Installing Jasmine standalone on local box

Download the standalone distribution for your desired release from the releases page

Create a Jasmine directory in your project - mkdir my-project/jasmine

Move the dist to your project directory -

mv jasmine/dist/jasmine-standalone-2.0.0.zip my-project/jasmine

Change directory - cd my-project/jasmine

Unzip the dist - unzip jasmine-standalone-2.0.0.zip

Add the following to your HTML file:

<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.0.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-2.0.0/jasmine.css">

<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/boot.js"></script>

Examples

A simple hello world test looks like the code below, where describe() describes a suite of tests and it() is an individual test specification.

The name "it()" follows the idea of behavior-driven development and serves as the first word in the test name, which should be a complete sentence.

The code below tests this function:

function helloWorld() {
  return 'Hello world!';
}

and verifies that its output is indeed the text "Hello world!".

describe('Hello world', function() {
  it('says hello', function() {
    expect(helloWorld()).toEqual('Hello world!');
  });
});

Influences

It is heavily influenced by other unit testing frameworks, such as ScrewUnit, JSSpec, JSpec, and RSpec.

See also

External links

General principles of testing

Online tools

YouTube videos