首页 > 解决方案 > 测试完成而不运行任何断言(ava-nodejs)

问题描述

为什么这个测试在没有运行任何断言的情况下返回测试完成?承诺处理有问题吗?如果我在服务器上运行此代码一切正常。

test.serial('test with req' , async (assert) => {
  var promise = new Promise(function(resolve, reject) {
  request('https://www.random.org/integers/?num=1&min=1&max=100&col=5&base=10&format=plain&rnd=new',
    (error, response, body) => {
      console.log(response)
      if(!error){
        resolve(body)
      } else {
        reject(error)
      }
    })
  })

  promise.then((result) => {
    console.log(result);
    assert.true(result !== undefined)
  }, (err) => {
    console.log(err)
    assert.true(err !== undefined)
  })
})

标签: node.jstestingpromiseasync-awaitava

解决方案


鉴于request已经有了 Promise 支持,您可以使用async/用两行代码重写这个完整的测试await

test.serial('test with req' , async (assert) => {
  const result = await request('https://www.random.org/integers/?num=1&min=1&max=100&col=5&base=10&format=plain&rnd=new');
  assert.true(result !== undefined);
})

推荐阅读