为什么失败的期望不会导致此Jest测试失败?

时间:2020-09-08 14:49:06

标签: javascript vue.js jestjs vue-test-utils

我在Vue应用中进行了一次Jest测试,该测试模拟了API调用,但是验证了预期的URL是否被调用,即

it('download support file', async () => {
  let matchedUrl = null

  const $http = {
    get: jest.fn(url => {
      matchedUrl = url
      return Promise.resolve({
        status: 200,
        data: {}
      })
    })
  }

  const wrapper = createWrapper(defaultProps, $http)
  wrapper.find('[data-cy="support-file-download"]').trigger('click')
  expect(matchedUrl).toEqual('/api/foo/bar')
})

如果URL与/api/foo/bar不同,则测试正确失败。但是,如果像这样将expect调用移至模拟函数中

it('download support file', async () => {

  const $http = {
    get: jest.fn(url => {
      expect(url).toEqual("NOT THE CORRECT URL")
      return Promise.resolve({
        status: 200,
        data: {}
      })
    })
  }

  const wrapper = createWrapper(defaultProps, $http)
  wrapper.find('[data-cy="support-file-download"]').trigger('click')
})

然后我在控制台上看到警告/错误,表明expect调用失败,但是测试通过了,为什么?

有没有一种方法可以使用类似于第二个示例的方法,但是预期失败会导致测试失败?

0 个答案:

没有答案