在使用should.js完成承诺后执行自定义测试的语法是什么?

时间:2016-01-05 00:05:47

标签: node.js promise 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
})

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

我手边没有新节点和摩卡。但它也应该用箭头。

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

答案 1 :(得分:0)

经过一些反复试验,我最终发现以下情况有效:

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();
        });
})

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