アクションによってストア内の状態が変化することを検証するために、Reflux ストアに対して mocha テストを作成しています。コードの縮小版を以下に示します。
店:
var AppStore = Reflux.createStore({
init: function () {
this.foo = false;
},
listenables: [AppActions],
onFooAction: function() {
this.foo = !this.foo;
this.trigger({action: "foo-ed"});
};
});
アクション:
var AppActions = Reflux.createActions([
"fooAction"
]);
テスト:
it("toggles foo", function () {
expect(AppStore.foo).to.equal(false);
AppStore.listenables[0].fooAction();
expect(AppStore.foo).to.equal(true);
});
ただし、2 番目のアサーション ( ) は、それがまだ偽expect(AppStore.foo).to.equal(true);
であると言って失敗します。foo
console.log
メソッド内で実行することによりonFooAction
、メソッドが実際にトリガーされ、this.foo
トグルされることを確認しました。
ここで欠けている基本的なものはありますか: 概念的またはその他? タイミングの問題ではないことを心から願っています!