【发布时间】:2018-07-25 11:56:20
【问题描述】:
我无法测试使用本机 WebSocket 的代码。这是测试函数的主体:
val webSocket = WebSocket("ws://localhost:8888")
window.setTimeout({
assertEquals(WebSocket.OPEN, webSocket.readyState)
}, 1000)
我将 Karma 与 Mocha 测试运行器一起使用。以下代码执行时没有任何错误,但 setTimeout 实际上被忽略且从未执行。
Mocha 似乎支持使用--delay 的基于setTimeout 的测试。但是,当我将标志与 client: { mocha: { delay: true } } Karma 配置一起使用时,测试只是冻结并失败,输出以下原因消息:
已断开连接,因为 60000 毫秒内没有消息。
使用setTimeout 执行测试的正确方法是什么?如果这很棘手,有没有其他方法可以在 WebSocket 完全连接后对其执行断言?我还没有使用任何特定于 Mocha 的功能,所以我不介意更改框架。
【问题讨论】:
标签: kotlin mocha.js karma-mocha kotlin-interop kotlin-js-interop