如何使用Jest在ES6类方法中测试对redux存储的调度?

时间:2019-03-07 18:59:43

标签: javascript unit-testing ecmascript-6 jestjs es6-class

我尝试测试是否在ES6类方法中发生了对redux存储的调度,但是我失败了。

以某种方式,我无法找出如何嘲弄商店以获得回应。

方法很简单:

.img class

我只想测试调度是否发生。

我尝试了几件事,包括class Foo { … bar() { store.dispatch({ type: FOO_BAR_BAZ }); } … }; ,但商店没有反馈。

redux-mock-store

如果有人能指出我正确的方向,我将深表感谢。

1 个答案:

答案 0 :(得分:0)

开玩笑的store模拟不被调用,因为该类无权访问它。解决此问题的一种方法是将存储传递给构造函数:

class Foo {
  constructor(store) {
    this.store = store
  }

  bar() {
    this.store.dispatch({ type: FOO_BAR_BAZ });
  }
}

-

it('should foo bar baz', () => {
  const store = {
    dispatch: jest.fn(),
  };

  const foobar = new Foo(store);
  foobar.bar();

  console.log(store.dispatch.mock);
});