是他们在 Reflux 中重置商店的一种方式。
我想在 Jasmine 中运行每个测试之前重置 Reflux 中的商店。
您必须自己做,因为 Reflux 没有规定您必须如何在商店中存储数据,因此没有官方接口来存储数据。
例如我这样做:
function defaultState() {
return {
userId: -1,
displayName: null,
loggedIn: false
};
}
var state = defaultState();
var userStore = Reflux.createStore({
// all your store methods
reset: function () {
state = defaultState();
// do other cleanup, or trigger a change event
}
});
因此,在您的茉莉花测试中,您现在只需调用:myStore.reset()
如果你想知道为什么我把state
和defaultState()
放在 store 外面:我这样做是因为这样做的好处是没有人可以从外面弄乱你的 stores 状态,只有 store 可以改变状态,但这当然只是一个小问题实现细节,你可以自由地将所有东西都变成商店本身的一部分。
这个示例 React/Reflux 项目配置可能也很有趣:
https ://github.com/kentor/react-flux-testing/blob/master/tests.webpack.js