Javascript 如何在mocha测试的描述部分重构异步代码

Javascript 如何在mocha测试的描述部分重构异步代码,javascript,async-await,mocha.js,Javascript,Async Await,Mocha.js,我需要在mocha中测试异步操作的结果,该操作创建的元素数组必须符合第节中为可读性而分组的某些规范: describe("tested", async function(){ var resultOfOperation = await tested() for( var e of resultOfOperation ) { describe("feature set 1", function(){ it("description

我需要在mocha中测试异步操作的结果,该操作创建的元素数组必须符合第节中为可读性而分组的某些规范:

describe("tested", async function(){        
    var resultOfOperation = await tested()
    for( var e of resultOfOperation ) {
       describe("feature set 1", function(){
           it("descriptionA", function() {
              assert(true)
           })
           it("descriptionB", function() {
              assert(true)
           })

       })
       describe("feature set 2", function(){
           it("descriptionC", function() {
              assert(true)
           })
       })
    }
})
上面的代码不起作用,因为
descripe
不支持
async
函数,所以我需要以某种方式重构这个测试用例。我知道我可以在钩子中使用异步函数,但在这种情况下它没有帮助


如何在
description
中摆脱异步,但保留测试适合的结构以提高可读性?

您可以尝试通过将
--delay
标志传递到您的mocha实例来实现该技术,该标志将为您提供特殊的
run
功能,您可以在套件准备启动时调用该功能,可以这样做:

(async() => {
  var resultOfOperation = await tested();

  describe("tested", function() {
    for (var e of resultOfOperation) {
      describe("feature set 1", function() {
        it("descriptionA", function() {
          assert(true)
        })
        it("descriptionB", function() {
          assert(true)
        })

      })
      describe("feature set 2", function() {
        it("descriptionC", function() {
          assert(true)
        })
      })
    }
  });

  run();
})();