私はNodeを使い始めています。私は今、いくつかの単体テストを書いています。最初のカップルの機能のために私はそれが正常に動作しているが、私は今それにmoment.utc()
を含む関数にヒットしました。私の機能の簡略化されたバージョンは、次のようになります。その結果(これが実行される時間ので単体テストのためにmoment.utc()をモックする方法は?
"use strict";
const assert = require('assert');
let positions = [{this: 'is', a: 'very', large: 'object'}];
assert.strictEqual(calculate_x(positions, 1.8), 1.5);
と:
function calculate_x(positions, risk_free_interest){
let x = 0;
for (let position of positions) {
let expiry_in_years = get_expire_in_years(moment.utc());
if (expiry_in_years > 0){
let pos_x = tools.get_x(expiry_in_years, risk_free_interest);
x += pos_x;
}
}
return x;
}
は、私は基本的なノードアサートテストのlibを使用してこれをテストしてみてください)は常に異なっていて、これは常に失敗します。
Pythonではモッククラスとオブジェクトを設定できます。 calculate_x()
関数の引数としてmoment.utc()を与えずにNodeでこの問題を解決できる方法はありますか?
[時間ソースを変更する](http://momentjs.com/docs/#/customization/now/)のようなものが必要ですか? – VincenzoC
sinonは、ノードのための素晴らしいテストライブラリespです、あなたもそこにタイマーを模倣する/変更することができますhttp://sinonjs.org/releases/v4.0.1/fake-timers/ –
@ VincenzoC - 恐ろしい!正確に私が必要なもの!あなたが答えとしてあなたのコメントを追加するなら、私はそれを受け入れることができます。 – kramer65