我正在尝试为某些异步进程编写一个简短的mocha / chai节点测试,期望它忽略无关的输入。它基本上看起来像这样(与相关输入的测试相比)。问题是如何编写第二个测试?它是一个异步过程,最终什么都不做,没有错误/成功发出......
it('should process input', function(done) {
object
.on('success', function(result) {
expect.result.to.equal("OK");
done();
})
.asyncDoSomething('relevant input');
});
it('should ignore input', function(done) {
object.asyncDoSomething('irrelevant input');
// TODO: how do I verify the async process eventually did nothing?
});
答案 0 :(得分:0)
这是一个很好的解决方案 - 想到的唯一解决方案是等待超时并假设如果在这段时间内没有发生,那么它就不会发生。但这不是好的设计,不必要地减慢了测试套件的速度。
您是否考虑过将决策逻辑隔离到可以同步测试的地方,然后对其进行测试?
答案 1 :(得分:0)
目前(还在等待可能更好的解决方案吗?),我已经更新了发射器,以便在它决定异步忽略输入的所有情况下发出某种“被忽略”的事件。为了测试,我使用以下方法检查忽略的“原因”:
expect(cause).to.equal(expectedCause)