mocha-gwt
v0.2.2
Published
Given When Then for Mocha
Readme
mocha-gwt
Given When Then for mocha
Introduction
mocha-gwt is a proud rewrite of mocha-given, which is a shameless port of Justin Searls' jasmine-given. As everyone of course knows, jasmine-given is a shameless tribute to Jim Weirichs' terrific rspec-given gem
If you are not aware of any of the mentioned projects, I recommend Justin Searl's video Javascript Testing Tactics and the documentation to jasmine-given. In time I will most likely write documentation for this myself.
Why yet another "given"-project?
I have been using jasmine and jasmine-given for a while but I found myself more and more favouring mocha over jasmine. I find mocha to be a more mature test runner and it seems to have greater performance. I was also bothered by some bugs in jasmine-given and mocha-given. Furthermore I wanted to utalize the promise support that exists in mocha. After looking at the code, and figuring out by hand how to write mocha interfaces, I came to the conclusion that a complete re-write where I had full fredom to experiment was the best solution. I now believe that I was right.
Differences from jasmine-given and mocha-given
- Promise support.
When -> Promise.resolve('foo').then (@result) =>will make@resultavailable in the followingThen - Invariants will fail if you strictly return
falsejust likeThenandAnd - Invariants are enough to run a test
describe 'myFunction', ->
When -> @result = myFunction @input
Invariant -> @result == ''
describe 'should return an empty string for undefined input'
Given -> @input = ''
describe 'should return an empty string for null input'
Given -> @input = null- Multiple
Thenfunctions in the same describe will act just likeThen,And,And...I.e it will not rerun theGivenandWhenfunctions that belong to the suite. This might be changed to follow the standard. But I have myself never encountered a test where non-repetition was not the desire.
Usage
- Install:
npm i -D mocha-gwt - Run mocha with it:
mocha --ui mocha-gwt - To use with
coffee-scriptdomocha --ui mocha-gwt --require coffee-script --compilers coffee:coffee-script/register
