繁体   English   中英

摩卡不失败测试

[英]Mocha not fail test

我有一个应该失败的简单测试,但是它通过了错误。

我的代码:

    it('my test', async () => {
        const result = await resolvingPromise;

        expect(result).to.equal('ok');

        async function analyzeData() {

            let getData = db.getData(1);

            let data = await getData;

            expect(data.field).to.equal(null);
        }

        analyzeData();
    });

在此测试中,首先期望是可以的,但是async函数中的期望必须失败,但是测试会返回通过的我,但我已经看到此错误:

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): AssertionError: expected Fri, 02 Mar 2018 09:47:06 GMT to equal null
(node:295) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

如何以这种方式处理拒收? 还是我需要在此处更改我的异步功能? 好的方法是什么?

Mocha将等待测试解决的任何诺言,然后再进行下一个测试。

使用当前代码, undefined将立即从测试函数返回,这意味着摩卡继续analyzeData ,而无需等待analyzeData承诺解决。 这导致测试成功,然后在以后发生未处理的拒绝,而不是等待并导致测试失败。

it('my test', async function(){
  const result = await resolvingPromise;
  expect(result).to.equal('ok');
})

it('next test', async function(){
  let data = await db.getData(1);  
  expect(data.field).to.equal(null);
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM