140 likes | 566 Views
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.
E N D
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({ • })})