standalone assertion libraries?
javascript
Solution
As of May 7, 2012
After some brief research, starting with the most minimalistic:
- assert.js - port of node assert functions
- jShould - QUnit extension
- should.js - node library
- expect.js - based on should.js, standalone
- YUIPort - YUI libs but standalone
- chai - node and browser, plugins inc. for JQuery
- expectThat - CoffeeScript
I have to admit that I do tend to agree with a commenter on DailyJS:
I don't understand why everyone likes these wordy assertion libraries.
Although I'm not a CoffeeScript user, I do tend to gravitate towards the plain assert.js style syntax rather than all this chaining.
Features that these libraries are developing include:
- plugable with the major test suites (saves having to switch between two libraries when coding)
- coding server-side (node) and client-side without changing libraries
- integration into the main web frameworks (e.g. JQuery)
Some of the major test suites include:
- JQuery's QUnit
- Mocha
- Jasmine
- js-test-driver
- YUI Test
- Sinon.JS
The major web frameworks often include their own test suites.
Logging wise, there is a discussion on libraries available. They don't, at a glance, seem to have caught up with server-side JS as of yet.
Problem
I was nearly through porting YUI assertion modules to standalone libraries when the thought popped into mind that I should have perhaps asked on StackOverflow if this was necessary first. However I finished the libs: YUIPort: https://github.com/gso/YUIPort But thought I would duly ask as well. Are there any good quality standalone libraries of assert functions - these can be very useful, e.g., checking the validity of arguments passed to functions (can save a lot of time invoking the debugger).