2015-11-17 14 views

答えて

16

を:あなたはこのようにそれを使用することができますより良い方法は、テストが失敗した場合に、より意味のあるメッセージにつながります。例えば

、あなたは例外がスローされることを期待するならば、なぜ直接言わない:例外をテストするとき

expect(function() { 
    // do stuff here which you expect to throw an exception 
}).to.throw(Error); 

をあなたが見ることができるように、あなたは匿名関数でコードをラップする必要があります。

もちろん、より具体的なエラーの種類、予想されるエラーメッセージなどを確認してテストを洗練することができます。Chai docs.throwを参照してください。

+2

もあります。私が概説したことがより良いアプローチであることに完全に同意します。 –

37

assert.fail()があります。 @DmytroShevchenkoで言及assert.fail()のような - - が、通常、これらの松葉杖を回避し、テストの意図を表現することができるあり、偽の障害には多くの方法がある

assert.fail(0, 1, 'Exception not thrown'); 
+2

...あなたの答えは他のオプションがない場合のための正しいものですので、私のupvoteも取得できます:) – hashchange

+0

@hashchange "to.throw"の代わりにそのような使用例があります。これは、オブジェクトコンストラクタでエラーが発生する可能性がある場合です。 – Mayhem93

+4

また、[** 'expect.fail()' **](http://chaijs.com/api/bdd/#method_fail) – randominstanceOfLivingThing

関連する問題