は、私が機能を持っている、のは、言ってみましょう:console.logステートメントでのMochaテスト機能の仕組みは?
function consoleOutput(param) {
var newParam = param * param;
console.log(newParam);
}
は、どのように私は(paramは、コンソールへの2つの出力によって乗算されます)この機能が正しく動作することになることを、モカでテストすることができます。ありがとう。
は、私が機能を持っている、のは、言ってみましょう:console.logステートメントでのMochaテスト機能の仕組みは?
function consoleOutput(param) {
var newParam = param * param;
console.log(newParam);
}
は、どのように私は(paramは、コンソールへの2つの出力によって乗算されます)この機能が正しく動作することになることを、モカでテストすることができます。ありがとう。
以下のコードで見てみてください、あなたはモカテストケース
var assert = require('chai').assert;
// Function to be Tested
function consoleOutput(param) {
var newParam = param * param;
console.log(newParam);
return newParam;
}
// Mocha Test Case
describe('Mocha Test Case', function() {
it('Square Root', function(done) {
var sqrt = consoleOutput(5);
assert.equal(sqrt, 25);
done();
});
});
のアイデアを取得します更新(25日 - 3月 - 2017年):
については、以下の答えをチェックしてください最良のパラチェス
これらのタイプのテストに最適なライブラリはSinonです。既存の関数を「フック」し、それらの関数がどのように呼び出されるかを追跡するために使用できます。例えば
:
const sinon = require('sinon');
const assert = require('assert');
// the function to test
function consoleOutput(param) {
var newParam = param * param;
console.log(newParam);
}
it('should log the correct value to console',() => {
// "spy" on `console.log()`
let spy = sinon.spy(console, 'log');
// call the function that needs to be tested
consoleOutput(5);
// assert that it was called with the correct value
assert(spy.calledWith(25));
// restore the original function
spy.restore();
});
この方法の利点は、あなたがこのような場合には、大したことではない、本来の機能を(変更する必要はありませんが、常に可能ではないかもしれないということである
より大きなプロジェクトでは)。
'TypeError:既に' wraonされているログを 'sinon.spy'行にラップしようとしましたか? – felamaslen
@srynznfyraあなたは、すべてのテストの後にスパイで '.restore()'を呼んでいると確信していますか? – robertklep
はい、 'spy.restore()'を 'console.log.restore()'に置き換えて修正しました。 – felamaslen
これはひどいです。値を返すことによってテストが合格するように、プロダクションコードを変更する必要があります。これをしないでください。 –