2016-07-01 9 views
1

ユニットテストにsinonとmochaを使用しています。私はいくつかのテスト(おそらく約束、コールバック、またはスタブ)を書いている問題を何度か思いついてきました。これらのテストはヒットしないので、実際には何もテストしていません。単体テストが実際に実行されていることを確認します。書き込まれていないためスキップされません。

私はこれを行った唯一の人間であるとは想像できません。だから、彼らが書いたテストが実際に実行されていることを検証するために人々が何をしているのか疑問に思っていました。

例として:

// sStuff... 

let myStub = sinon.stub(className, "classMethod", (result) => { 
    // THIS will never be ran. 
    expect(result).to.be.equal(5); 
}); 

expect(myStub.callCount).to.be.equal(0); 

// Stuff... 

テストでは、それは我々がcallCountチェックを持っているので、走っていなかったが、実際に、私たちはクラスメソッドを持つようにクラス名の上に何かを呼び出すことはありませんしている文句を言わないだろう関数を呼び出すと結果を5に対してテストします。

一般的な解決策はありますか?私はこれの検索条件を考えることができませんでした。

ありがとうございます!

+1

ユニットテスト用のユニットテストが必要です –

答えて

0

私はサイモンやモカを一度も使用していません。つまり、テストがあなたが期待していることを検証する最も簡単なアプローチは、条件が満たされていないと失敗することを確認することです。

TDDでは、テストが失敗し、次に実装する新しいコードによって常に「固定」されるため、この問題を回避するのに役立つRed、Green、Refactorサイクルに従います。

既存のコードのテストを記述する必要がある場合は、通常、必要と思われるテストを作成し、テストの結果を検証するコードの動作を変更します。それがテストを中断しない場合、テストは何も良いものではないので、私は戻ってテストを修正します。次にコードへの変更をロールバックし、テストが再び合格することを確認します。

テストが失敗することを検証するのは、テストをパスするだけの時間よりも少し時間がかかりますが、失敗サイクルは、テストが実際に価値があり、期待どおりに動作していることを確認するのに役立ちます。

関連する問題