should.jsが辛いのでやめたくなった

Rspec風に使える、という理由で使ったけど、もうなんというか気分的に辛い
visionmedia/should.js https://github.com/visionmedia/should.js/

問題1 nodeのassert依存

ブラウザ用に移植できない

問題2 undefined, null は prototypeを持たない

次のようなコードは getHogeがundefined返してしまうと hoge.shouldを触った時点で落ちる

hoge = getHoge()
hoge.should.equal 'hoge'

アサーションにすらたどり着けず落ちるのはストレスたまる
やっぱラップするタイプのexpectの方がよさそう

問題3 nodeのネイティブモジュールに依存したオブジェクトはprototypeを共有していない

JSDOMで生成したオブジェクトのアサーションができない!!!

結論

chai使いましょう

Home - Chai http://chaijs.com/