SteveSanderson/knockout — pull request #718 by chrisprice (2012-11-16 10:49:39+00:00)
Title: Port JSSpec and qunit tests over to Jasmine

As a pre-cursor to running some tests out of the browser for #712, something unsupported by JSSpec, I've had a go at porting all of the test specs over to use Jasmine. This has a number of benefits -

* Speed - the tests now execute in about 1/10th of the time (using phantom on my machine)
* Async - as jasmine supports async specs, qunit can be removed and the async tests can be run as part of CI
* Browserless - jasmine will happily run in a browserless environment
* Maintenance - jasmine has been [steadily maintained for the last 4 years](https://github.com/pivotal/jasmine/graphs/contributors)

The jasmine API is very similar to the JSSpec one so most of the porting isn't very controversial. However, there are three commits worth drawing attention to -

* [Try/catching expectations doesn't work in jasmine](https://github.com/chrisprice/knockout/commit/1da32ffd844b59c64fa68b60f6f582b8f2fd7773)
* [Jasmine's expectations are type sensitive](https://github.com/chrisprice/knockout/commit/411efd17246adecdc28fc84113ae4016e18223a3)
* [Converting the qunit async tests](https://github.com/chrisprice/knockout/commit/776de318bc88a77d8b6cf91614455d3fbb367d8b)

I've run the tests successfully on all the browsers I have access to.

I hope this change isn't too controversial, I noticed on the mailing list that lots of people were using jasmine for their own tests.

Chris