gpt4 book ai didi

javascript - sinon 模拟上的发射函数

转载 作者:行者123 更新时间:2023-12-03 05:33:04 26 4
gpt4 key购买 nike

我有一个函数需要使用 sinon 进行测试。它需要两个参数并具有可以引发的不同事件。我正在尝试模拟“准备就绪”事件,以模拟成功的 SFTP 连接

function configureSFTPConnection(conn, connectionSettings) {
'use strict';

return new Promise(function(resolve, reject) {
conn.on('ready', function() {
resolve(conn);
}).on('error', function(err) {
reject(err);
}).connect(connectionSettings);
});
}

我可以模拟外部connect功能。

configureSftpStub = sinon.stub(clientObject, 'connect');

如何强制执行 ready 回调,完成 promise ?

这就是我正在尝试的:

clientObject = new client();           
configureSftpStub = sinon.stub(clientObject, 'connect');
configureSftpStub.onCall(0).returns(function() {
console.log('trying to do something');
resolve();
});

.onCall() 似乎从未运行。

最佳答案

所需要的不是尝试返回我需要的东西来替换被调用的函数并在函数内执行简单的 .emit 调用。

configureSftpStub = sinon.stub(clientObject, 'connect', function() {
this.emit('ready');
});

关于javascript - sinon 模拟上的发射函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40853369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com