the unknown spice girl. aka ninecollective jasmine testing

Post on 17-Dec-2015

223 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

JASMINE SPICEThe unknown spice girl.

Aka NineCollective Jasmine Testing

Setting up Jasmine

In Command Prompt type InstallGems.bat

Rebuilding for test run If you make changes to or create a new

viewModel run rake asset:compress in Git Bash. This will later be done automatically.

Run the test server

To set up the server and run the tests type rake js:server.

This will run the test server.

Getting the port number

You find the port number for localhost after you run js:server

Capturing the Browser

In your browser go to localhost:port number.

Click Capture the Browser

Captured Browser

Run the tests

Type rake js:run in a different Git Bash to run the tests.

Auto running Jasmine tests on file change

Instead of rake js:run you can do rake js:auto to run the tests automatically if you have growl installed

Must have Growl installed and running. www.growlforwindows.com

Setting up a Spec

It() sets up a spec for testing. To create a Spec you would type

it(‘Meaningful Description’ function () { code to run goes inside here.})

Inside the Spec you would use expect( Item to Test ) . Matcher to use.

You can disable a Spec by using xit() instead of it().

Setting up a Suite Group your specs into suites. To set up a Suite you use describe(). The suite set up looks like this

describe( ‘Suite name’, function () { Then a call do the different Specs you will be testing }).

The Suite name will be reported when Spec is ran.

Suites are ran in the order that the describe calls are made.

Setting up a Suite (cont.)

You can call variables within a describe block that are accessible by the Specs

If you create a global variable it will not be reset between each Spec call.

To initialize a variable between each Spec use beforeEach().

Suites can be nested. You can disable a Suite by using

xdescribe() instead of describe().

Matchers

Matchers are used to test a certain outcome.

You can define your own Matchers to assert a more specific expectation.

A matcher function gets the value from this.actual.

You can pass as many arguments as you want into the function call.

It returns a Boolean value.

The way we use Jasmine

We use nested Suites to test each part. descirbe({

Describe({○ Describe({○ })})

top related