Getting started with jasmine
Remarks#
Sometime testing our JavaScript code becomes a tough task. Jasmine is a behavior-driven development framework for testing our JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean syntax which makes you easily write the tests. You can find the Jasmine documentation here and the project in GitHub.
Versions#
| Version | Release Date |
| 1.0.0 | 2010-09-14 |
| 1.3.0 | 2012-11-27 |
| 2.0.0 | 2013-12-16 |
| 2.1.0 | 2014-11-14 |
| 2.2.0 | 2015-02-02 |
| 2.3.0 | 2015-04-28 |
| 2.4.0 | 2015-12-02 |
| 2.5.0 | 2016-08-30 |
Installation or Setup
Installing Jasmine standalone
Download the latest Jasmine release from the Jasmine release page:
Running Jasmine locally
-
Run Jasmine in the browser by downloading the zip file, extracting it, the referencing the files as follows:
Installing Jasmine using npm (Node Package Manager)
-
Set up project directory for Jasmine
Create a folder and run
npm init
this will create an emptypackage.json
file and will ask some questions about your project to fill projectjson
file.Add 2 directories
app
- for the Server andspec
- for tests -
Get Jasmine
From root project directory run
npm install jasmine-node --save
npm install request --save
npm install express --save
this will get you the packages
./node_packages/.bin/jasmine-node spec
will run jasmine binaryAfter this your
package.json
should look similar to thispackage.json file, after which that file should look like this:
{ “name”: “Jasmine”, “version”: “0.0.1”, “description”: “Jasmine”, “main”: “index.js”, “scripts”: { “test”: “./node_modules/.bin/jasmine-node spec” }, “author”: “Me”, “license”: “ISC” }
Install with npm
npm install -g jasmine
If being used with karma, install karma-jasmine
npm install --save-dev karma-jasmine
Hello World
To create a most basic test with Jasmine go to your spec
(tests) folder and add file named testSpec.js
.
In that file add following:
var request = require("request");
describe("Hello World Test", function() {
// This is your test bundle
describe("GET SO", function() {
//This is testing that http GET works
it("Checks if SO is online", function() {
// This is description of your test - this is what you get when it fails
request.get("https://stackoverflow.com/", function(error, response, body) {
// this is your test body
expect(response.statusCode).toBe(200);
// this is your test assertion - it expects status code to be '200'
});
});
});
});