2016-08-31 5 views
1

mochaテストがあります。できるだけ簡略化します。 モカのテストでエラーをどのように処理すればよいのでしょうか。たとえば、getNameにエラーがある場合、私は何をすべきですか?どのようにエラーを投げることができますか?または、私はdone(error)を使うべきですか? donenull以外の引数で呼び出された場合mochaユニットテストでのエラー処理

it('trial', function(done) { 
    getName(function (name, err) { 
     if(err){ 
      done(err); //what should I do here? 
     }else{ 
      console.log(name); 
     } 
    }); 
}); 
+1

は常に 'なさ(ERR)'あなたが持っている場合は、非同期コードを使用します。投げているものを投げることはできません。 –

答えて

2

、テストは失敗します、そのように報告されます。それ以外のテストは実行されます。

それはあなたがたが、エラーのために、成功のためにテストすることができ:

it('succeed', (done) => { 
    myFunc('success', (err, res) => { 
     if(err) { 
      done(err); 
     } else if(res !== 'expected') { 
      done('Wrong result ' + res); 
     } else { 
      done(); 
     } 
    }); 
}); 

it('fail with error 404', (done) => { 
    myFunc('fail', (err, res) => { 
     if(err) { 
      if(err === 404) { 
       done(); 
      } else { 
       done('Error was expected to be 404, got ' + err); 
      } 
     } else { 
      done('Was expected to fail, got result ' + res + ' and no error'); 
     } 
    }); 
}); 

it('succeed', (done) => { 
    try { 
     var res = myFuncSync('succeed'); 
    } catch(err) { 
     done(err); 
    } 
    done(); 
}); 

it('fail with error 404', (done) => { 
    try { 
     var res = myFuncSync('succeed'); 
    } catch(err) { 
     if(err === 404) { 
      done(); 
     } else { 
      done('Error was expected to be 404, got ' + err); 
     } 
    } 
    done('Was expected to fail, got result ' + res + ' and no error'); 
}); 
関連する問題