アクセスできないプロパティ(debugLog
)がtrueに設定されていることを検証できるモックテストを作成するにはどうすればよいですか?私はその物件の価値を見つける方法を見つけようとしますか? console.debug
が設定されていることを確認しますか?この状況ではスパイは意味をなさないのですか?またはスタブを使用すべきですか?ログを有効にしているのかデバッグログを有効にしていますか?
クラスX
let showDebugLogs = false,
debugLog = _.noop
/**
* Configures Class X instances to output or not output debug logs.
* @param {Boolean} state The state.
*/
exports.showDebugLogs = function (state) {
showDebugLogs = state;
debugLog = showDebugLogs ? console.debug || console.log : _.noop;
};
ユニットテスト
describe('showDebugLogs(state)', function() {
let spy;
it('should configure RealtimeEvents instances to output or not output debug logs', function() {
spy = sinon.spy(X, 'debugLog');
X.showDebugLogs(true);
assert.strictEqual(spy.calledOnce, true, 'Debug logging was not enabled as expected.');
spy.restore();
});
});