
The unknown spice girl. Aka NineCollective Jasmine Testing Jasmine Spice
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
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({ • })})