Javascript 检查超时的方法会引发异常
我试着用茉莉花来测试这个方法Javascript 检查超时的方法会引发异常,javascript,jasmine,Javascript,Jasmine,我试着用茉莉花来测试这个方法 connect() { client.connect(); setTimeout(() => { if (client.getState() !== zookeeper.State.SYNC_CONNECTED) { throw new Error(); } }, 1); } 通常,我会通过以下方式测试此方法: it('throws error', function() { expect
connect() {
client.connect();
setTimeout(() => {
if (client.getState() !== zookeeper.State.SYNC_CONNECTED) {
throw new Error();
}
}, 1);
}
通常,我会通过以下方式测试此方法:
it('throws error', function() {
expect(connect).toThrow();
});
我知道
setTimeout
在一个单独的线程中抛出一个错误,因此toThrow
在这种情况下不起作用。有人知道测试这种方法的其他方法吗?你不能;您需要更改方法,以便调用者能够发现错误。使用回调或承诺。因为您要在窗口下设置asynchronousmock setTimeout,并在调用test()之前立即执行第一个参数回调