我必须听一个事件并检查在此事件之后是否设置了特定值。例如:
eventEmitter.on("event", () => {
expect(thing).to.equal(otherThing);
done();
});
如果thing
等于它应该otherThing
,这一切都可以正常工作 - 但是,如果出现问题并且测试失败(两者不相等)或此回调中存在错误(例如,我写了otherTing
而不是otherThing
)错误被吞并且未调用done
。
我理解这里的问题是it
规范代码和事件回调在不同的域中运行,因此后者中的错误不会传播到前者。
在测试中处理这种情况的正确方法是什么?