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

问题描述

我在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,$http)
  wrapper.find('[data-cy="support-file-download"]').trigger('click')
})

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)