Как я могу сделать Jest тест на сгенерированную ошибку молча - PullRequest
0 голосов
/ 18 февраля 2019

Я пишу тест, чтобы утверждать, что компонент выдает ошибку, если предоставлен один пропеллер, но не другой.

Сам тест проходит, но консоль по-прежнему жалуется на неперехваченную ошибку и печатает весь стекслед.Есть ли способ заставить Jest прекратить печатать эту информацию, так как она загрязняет бегуна и создает впечатление, что что-то не удалось.

Для справки, это мой тест:

it("throws an error if showCancel is set to true, but no onCancel method is provided", () => {
    // Assert that an error is thrown
    expect(() => mount(<DropTarget showCancel={ true }/>)).toThrowError("If `showCancel` is true, you must provide an `onCancel` method");
});

Сама ошибка выдается здесь:

if(props.showCancel && !props.onCancel) {
    throw new Error("If `showCancel` is true, you must provide an `onCancel` method");
}

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Я нашел однострочный ответ на мою проблему здесь .

Добавление spyOn(console, "error"); (в тесте, который ожидает ошибку) подавляет ошибку от регистрации.

0 голосов
/ 18 февраля 2019

Исходя из примера в Документах фермента , похоже, что вы должны утверждать, что компонент выдает ошибку примерно так:

it("throws an error if showCancel is set to true, but no onCancel method is provided", () => {
    // Assert that an error is thrown
    const wrapper = mount(<DropTarget showCancel={ true }/>))
    const error = new Error("If `showCancel` is true, you must provide an `onCancel` method") 
    expect(wrapper).simulateError(error)
});

Возможно, вам потребуется смонтировать с помощью *Компонент 1006 * (я не уверен ...), но я бы попробовал это ^ и посмотрел, есть ли у вас удача.

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