私は JS にステート マシンを持っていますが、これには (簡略化するために) 何かが起こる前にのみ設定される初期状態があります。
define(function() {
var state = 'initial',
exports = {};
exports.getState = function() {
return state;
};
exports.doSomething = function() {
state = 'newState';
};
return exports;
});
アプリがリロードされるまで状態は永続的であるため、最初のテストの後、状態が再び「初期」になることはありません。そのため、状態をリセットする方法が必要です。
これを行う最も汚い方法はどれですか? するべきか...
a) 単純に状態を公開し、_? で非公開としてマークします。
define(function() {
var exports = {};
exports._state = 'initial'
exports.getState = function() {
return this.state;
};
exports.doSomething = function() {
this.state = 'newState';
};
return exports;
});
b) 関数を介して状態を書き込み可能にしますか?
define(function() {
var state = 'initial',
exports = {};
exports.getState = function() {
return state;
};
exports.doSomething = function() {
state = 'newState';
};
if(window.xxTests) {
window.xxTests.Module = {
setState: function(newState) {
state = newState;
}
};
}
return exports;
});
(ここで、xx はアプリのプレフィックスであり、xxTests はテスト ランナーの一部としてのみ定義されています)
また
c) 私が考えもしなかった別のことをする?
ご意見やご提案をお待ちしております。