Jest: Async/Await expect().toThrow() не работает должным образом

Созданный на 12 февр. 2018  ·  5Комментарии  ·  Источник: facebook/jest

Я пытаюсь утверждать, что обещание выдает ошибку с помощью Async/Await.

async function throws () {
  throw new Error('hello world')
}

test('promise throws', async () => {
  expect(async () => {
    await throws()
  }).toThrow()
})

Вот что я получаю:

● promise throws

expect(function).toThrow(undefined)

Expected the function to throw an error.
But it didn't throw anything.

Есть предположения? Разве Jest не поддерживает это? Или я неправильно его использую?

Самый полезный комментарий

Какие?

async function throws () {
  throw new Error('hello world')
}

test('promise throws', async () => {
  await expect(throws()).rejects.toThrow()
})

Это решено, пожалуйста, прочитайте документы, прежде чем комментировать старые проблемы. https://jestjs.io/docs/en/asynchronous#resolves -отклоняет

Все 5 Комментарий

Однако это проходит:

async function throws () {
  throw new Error('hello world')
}

test('promise throws', async () => {
  let message = false
  try {
    await throws()
  } catch (e) {
    message = e.message
  }
  expect(message).toBeTruthy()
})

Кандидат на базовую функциональность.

Какие?

async function throws () {
  throw new Error('hello world')
}

test('promise throws', async () => {
  await expect(throws()).rejects.toThrow()
})

Это решено, пожалуйста, прочитайте документы, прежде чем комментировать старые проблемы. https://jestjs.io/docs/en/asynchronous#resolves -отклоняет

Какие?

async function throws () {
  throw new Error('hello world')
}

test('promise throws', async () => {
  await expect(throws()).rejects.toThrow()
})

Это решено, пожалуйста, прочитайте документы, прежде чем комментировать старые проблемы. https://jestjs.io/docs/en/asynchronous#resolves -отклоняет

Важным моментом в решении является await expect . В противном случае ваши проверки всегда будут проходить.
В качестве альтернативы вы также можете вернуть ожидание, как это делается в документах.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги