typescript - 如何使用 Typescript 用 Jest 模拟 tls.PeerCertificate?
问题描述
我可以像这样用茉莉花模拟 getCertificate :
const socket = new TLSSocket(new net.Socket())
socket.authorized = false
socket.authorizationError = Error('Invalid certificate')
//Mocking here
const spyOnGetCertificate = spyOn(socket, 'getCertificate').and.returnValue({'subject': {'CN': 'testing'}});
但是,当我尝试开玩笑时:
const socket = new TLSSocket(new net.Socket())
socket.authorized = false
socket.authorizationError = Error('Invalid certificate')
//Mocking here
const spyOnGetCertificate = jest.spyOn(socket, 'getCertificate').mockImplementationOnce(() => {
return {'subject': {'CN': 'testing'}}
})
socket.getCertificate = spyOnGetCertificate
我收到一个错误:
类型 'SpyInstance' 不可分配给类型 '() => object | 同行证书”。类型 'SpyInstance' 不提供与签名 '() 的匹配:对象 | PeerCertificate'.ts(2322)
设置所有 PeerCertificate 属性后,我仍然收到错误消息。
解决方案
哎呀,不需要这样做♂️</p>
socket.getCertificate = spyOnGetCertificate
推荐阅读
- apache-spark - 有没有办法在从数据库(Oracle)读取数据(spark.read.jdbc)时指定分区数而不指定下限和上限?
- java - Maven安装相同依赖项的多个版本
- slack-api - 您如何保存 Slack 模态视图 ID 以供将来更新?
- c++ - Arrayfire 矢量化
- laravel - 我如何模拟 guzzle 请求
- javascript - Javascript - 异步等待和获取 - 返回值,而不是承诺?
- facebook-prophet - 使用带有 fbprophet 的每周数据进行预测的困难
- joomla - 是否可以在 Joomla 中将 Tinymce 升级到 v5.x?
- vba - 如何检查 Split() 结果是否有效?
- java - Tomcat 9 不允许将文件读取为具有 777 权限的字符串?