Asynchronous BDD in CoffeeScript running on the client and server
This project is a reimplementation of Vows in CoffeeScript. Why do we care when Vows is already written in JavaScript? Well, first, because this rewrite runs in the browser, and rewriting Vows in CoffeeScript seemed easier than modifying the current version to remove all the dependencies on node. Second, the implementation is much cleaner in CoffeeScript, which allows for easier modification and extension.
Tests written for vows should run more or less unmodified, but there are a few API additions to make writing tests in CoffeeScript a little nicer.
vows = require('vows')
assert = require('assert')
class DeepThought
question: (q) -> 42
vows.add 'Deep Thought'
'An instance of DeepThought':
topic: new DeepThought
'should know the answer to the ultimate question': (deepThought) ->
assert.equal deepThought.question('what is the answer to the universe?'), 42
Look in the /example folder to find examples of running vows in the browser.
There are some small differences from JavaScript vows:
* only spec, dot-matrix, and json reporters
* no --watch option for watching test files for changes
* no automatic test discovery
* no ability to reset tests and run them again
* no per-suite reporters
* no ability to report on tests that didn't finish
These things will be fixed as I have time to reimplement them in browser-compatible CoffeeScript.
Check out the vows documentation at http://vowsjs.org