javascript - 如何用 jest 和 socket.io 结束测试
问题描述
在我的项目中,我jest
用作测试运行器。
测试纯函数很容易,但我发现自己正在与' 期望
抛出的错误作斗争。jest
我想使用socket.io
.
test('async', (done) => {
const s = createConnection(config.port)
s.on(WORLD, () => {
expect(true).toBe(true)
done()
})
s.emit(HELLO)
})
运行这个测试按预期工作,套接字客户端发送一条消息,
然后接收响应并期待一些东西done
。
问题是当期望失败时,因为jest
将它作为错误抛出,
永远done
不会被调用,我需要将它包装在try-catch
块中:
test('async', (done) => {
const s = createConnection(config.port)
s.on(WORLD, () => {
try {
expect(false).toBe(true)
done()
} catch (e) {
done(e)
}
})
s.emit(HELLO)
})
这种编写测试的方式(用try-catch
块包装所有东西)
非常乏味,我想知道是否有办法告诉 jest
在失败后继续运行expect
。
解决方案
推荐阅读
- javascript - 使用 Javascript 仅将选定的数组数据发送到另一个数组
- javascript - 是否可以将javascript值设置为
- android - 如何在 Android 应用程序中永久禁用 NDEF 标记发现,而不仅仅是针对 Activity?
- mongodb - flask_pymongo 无法使用 auth 访问 mongodb
- android - 在 SpannableStringBuilder getSpans() 中添加额外的行
- c# - 如何在日本日历选择器中更改年份格式
- python - 我应该如何测试循环中调用了多个函数?
- java - 如何读取不应包含“”或'或新行的csv文件,然后将修改后的csv插入数据库
- reactjs - react-leaflet mapboxgl集成不起作用
- mysql - SQL除法运算符及其在Mysql中的实现