expect.jsとchai.expectのブラウザ対応

BDD Assert系のモジュールでchaiとexpect.jsを試した。機能はほぼ変わらないけどブラウザのサポートでけっこう差が出た。(ここでいう機能が変わらないってのはchai.expectと比較しての話し。chai.assertとかchai.shouldを考えると完全にchaiが高機能)
https://github.com/logicalparadox/chai
https://github.com/LearnBoost/expect.js

chaiはIE8以下だとぴくりとも動かない。expect.prototype.instanceofとかって予約語をキーにしてるのでが主な原因かな(他にも原因いくつかあるっぽい)。なのでちょっと前のSafari(主にiOS4系)でもアウト。

IE9は動くのは動くけどテストがいくつかこけてる。expect.prototype.throwがバグってたりFunction.name使ってエラーメッセージ返したりしてるのでそこがundefinedになってたりとか。とりあえずIEは完全に無視してるっぽい。IE8以下の対応についてはパッチ投げてどうにかできるレベルじゃなさそう。

expect.jsはIEでも問題なかった。IE8以下でちょっとしたバグがあったけどパッチ投げたので取り込まれればIE7でも大丈夫になる。

というわけで個人的にははexpect.js一択な予感。