Как проверить компонент, который должен выдать ошибку? - PullRequest
0 голосов
/ 11 сентября 2018

Ошибка при отбрасывании моего компонента ( и должна быть )

function ProblemChild() {
    throw new Error("Error thrown from problem child");
    return <div>Error</div>; // eslint-disable-line
}

Мой вопрос: как я могу это проверить ??

const wrapper = mount(<ProblemChild />);

Что-то вродеэто ..

expect(wrapper).toThrow()

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Завершение монтажа внутри обратного вызова.Вот так:

expect(() => mount(<ProblemChild />)).toThrow()
0 голосов
/ 13 сентября 2018

Вы можете сделать что-то вроде этого:

it('should throw an error when there is an error', () => {
  try {
    wrapper.setState({error: true});
    expect(true).toBe(false); //Fail test if no error is thrown
  } catch (error) {
    expect(error).toBe(error); //Pass test if an error is thrown
  }
});

В приведенном выше примере у меня есть ошибка в состоянии. Вполне возможно, что ваша функция вызывается onClick или onChange. В этом случае вы должны использовать событие имитации перед утверждением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...