should.js 履行承诺后执行自定义测试的语法是什么?

What is the syntax to perform a custom test after a promise is fulfilled with should.js?

我想表达如下内容:

it("should use the 'text' mode", () => {
    let usedMockMode = false;

    let env = new Environment();
    let mockMode = { parse: () => usedMockMode = true };
    env.modes.set("text", mockMode);

    return env.parseContent("foo", "text")
        .should.eventually.be.true(() => usedMockMode);
                       // ^--------------------------^
                       //        Pseudo-code
})

有办法实现吗?

我手头没有新节点和 mocha。但它应该也适用于箭头。

describe('promise fn', function(){
  it('should fullfill a promise', function(done){
    …
    return env.parseContent('foo', 'bar').then(function(){
      (usedMockMode).should.be.true})
      .finally(done);
  });
})

经过一些trial-and-error我最终发现以下工作:

it("should use the 'text' mode", () => {
    let usedMockMode = false;

    let env = new Environment();
    let mockMode = { parse: () => usedMockMode = true };
    env.modes.set("text", mockMode);

    return env.parseContent("foo", "text")
        .then(() => {
            usedMockMode.should.be.true();
        });
})

这对我来说似乎不是很直观,因为在幕后显然有一些魔法可以将断言绑定到测试上下文。