JEST-тест должен завершиться неудачно с try-catch - PullRequest
0 голосов
/ 05 февраля 2020

Мне интересно, почему мой нижеприведенный тестовый пример проходит после использования блока try-catch, хотя он должен завершиться ошибкой:

test("test", () => {
  try {
    expect(true).toBe(false);
  } catch (err) {
    console.log(err);
  }
});

Пока без try-catch происходит сбой:

test("test", () => {
  expect(true).toBe(false);
});

1 Ответ

2 голосов
/ 05 февраля 2020

Тест завершится неудачей только в случае возникновения ошибки.

Утверждение expect(true).toBe(false); выдаст ошибку, которую Jest обнаружит и запишет тест как неудачный.

Однако использование блока try-catch перехватит ошибку и позволит вам обработать ее, когда вы будете sh.

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

Если вы повторно выбросите ошибку в блоке catch, Jest перехватит ее и провалит тест:

test("test", () => {
  try {
    expect(true).toBe(false);
  } catch (err) {
    console.log(err);
    throw err; // <— Re-throw error
  }
});

Надеюсь, это поможет.

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