Как я могу проверить отправку в хранилище с избыточностью в методе класса ES6 с Jest? - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь проверить, что отправка в хранилище с избыточностью происходит внутри метода класса ES6, но у меня ничего не получается.

Почему-то я не могу узнать, как издеваться над магазином, чтобы получить ответ.

Метод довольно прост:

class Foo {
  …
  bar() {
    store.dispatch({ type: FOO_BAR_BAZ });
  }
  …
};

Я просто хочу проверить, что отправка произошла.

Я попробовал пару вещей, включая redux-mock-store, но я не получаю отзывов от магазина.

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

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

  console.log(store.dispatch.mock);
  //=> { calls: [], instances: [], invocationCallOrder: [], results: [] }
});

Я был бы глубоко признателен, если бы кто-то мог указать мне правильное направление.

1 Ответ

0 голосов
/ 27 марта 2019

Шутка 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);
});
...