首页 > 解决方案 > 如何编写具有超时和异步的摩卡测试

问题描述

createStream 需要获得浏览器的影音权限,所以我不得不推迟这个测试

createStream回报destroyStream承诺

我想测试destroyStream,这只是没有得到我想要的,有人帮忙吗?

it("my test need to be delayed, and i want to test destroyStream", function () {
  setTimeout(async () => {
    // i need to create stream first
    const publishStream = await createStream();
    expect(streamCenter.previewVideoList.length).to.equal(1);

    // then destory stream
    await zg.destroyStream(publishStream);
    expect(streamCenter.previewVideoList.length).to.equal(0);
  }, 2000); // my test need to be delayed
});

标签: mocha.js

解决方案


it("my test need to be delayed, and i want to test destroyStream", async function () {
    this.timeout(10000); // set timeout 10s
    // i need to create stream first
    const publishStream = await createStream();
    expect(streamCenter.previewVideoList.length).to.equal(1);

    // then destory stream
    await zg.destroyStream(publishStream);
    expect(streamCenter.previewVideoList.length).to.equal(0);
  
});

如果我及时允许权限,这似乎可行。否则它将失败并出现错误“权限被拒绝”


推荐阅读