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();
});
})
这对我来说似乎不是很直观,因为在幕后显然有一些魔法可以将断言绑定到测试上下文。
我想表达如下内容:
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();
});
})
这对我来说似乎不是很直观,因为在幕后显然有一些魔法可以将断言绑定到测试上下文。