在 sinon 模拟上发出函数
Emit function on sinon mock
我有一个函数需要使用 sinon 进行测试。它有两个参数并且可以引发不同的事件。我正在尝试模拟为模拟成功的 SFTP 连接所做的 'ready' 事件
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
回调,完成承诺?
这就是我正在尝试的:
clientObject = new client();
configureSftpStub = sinon.stub(clientObject, 'connect');
configureSftpStub.onCall(0).returns(function() {
console.log('trying to do something');
resolve();
});
.onCall()
似乎从来没有 运行.
我们需要的不是尝试 return 我需要的东西来替换被调用的函数并在函数内做一个简单的 .emit
调用。
configureSftpStub = sinon.stub(clientObject, 'connect', function() {
this.emit('ready');
});
我有一个函数需要使用 sinon 进行测试。它有两个参数并且可以引发不同的事件。我正在尝试模拟为模拟成功的 SFTP 连接所做的 'ready' 事件
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
回调,完成承诺?
这就是我正在尝试的:
clientObject = new client();
configureSftpStub = sinon.stub(clientObject, 'connect');
configureSftpStub.onCall(0).returns(function() {
console.log('trying to do something');
resolve();
});
.onCall()
似乎从来没有 运行.
我们需要的不是尝试 return 我需要的东西来替换被调用的函数并在函数内做一个简单的 .emit
调用。
configureSftpStub = sinon.stub(clientObject, 'connect', function() {
this.emit('ready');
});