2012-06-21 10 views
5

Node.jsのMochaの特定の状況をテストするための質問があります。私は私のアプリでは、次のコードを持っていたと仮定し...関数がMochaで別の関数を呼び出すことをテストします

function a() { 
    //... 
} 

function b() { 
    //... 
} 

function c() { 
    if(condition) { 
     a(); 
    } else { 
     b(); 
    } 
} 

私は関数cをテストしていた場合、どのように私はその機能を検証することができ、Aや機能Bが呼ばれましたか?これを行う方法はありますか?

答えて

5

私は私がやろうとしていたもののために解決策を見つけました。 Sinon spiesは、特定の関数が呼び出されたかどうかを判断するのに役立ちます。

1

これは、code coverageが対象です。幸いなことに、mochaはその活用をサポートしていますJSCoverage

最初の行が削除さ
coverage: 
    rm -rf lib-cov 
    jscoverage --no-highlight lib lib-cov 
    @MOCHA_COV=1 mocha --reporter html-cov > coverage.html 
    google-chrome coverage.html 
  1. (前回の)コードカバレッジを表示するには、モカのために必要なJavaScriptファイル(フォルダ)をインストルメント:私は次のようになりますMakefileを使用しています。
  2. 2行目は、libフォルダのlib-covフォルダを作成するためにjscoverageを使用しています。
  3. 3行目は、ノードコードが計測コードを実行する必要があることを確認するために使用されます。
  4. 最後に、coverage.htmlgoogle-chromeと表示します。私のモカテストファイルで

私は次のような行があります。

var BASE_PATH = process.env.MOCHA_COV ? './../lib-cov/' : './../lib/'; 

MOCHA_COV=1はその後、インストルメントコードが使用されますその方法を。


コードカバレッジに関するいくつかのより多くの興味深いリンク:

関連する問題