如何对流中调用的内部函数进行存根

时间:2018-07-02 12:04:20

标签: node.js sinon

我无法正确对内部函数进行存根,出现错误

  

req.on不是函数

我的外部函数像这样存根

streamQuery = sinon.stub();

    couchbaseRepository = {
        getBucketWrapper: sinon.stub().returns(
            {
                query,
                streamQuery,
            },
        ),
    };

我内心像这样存根:

const req = {
        on: sinon.stub(),
    }
    streamQuery.onFirstCall().resolves([req]);

我的streamQuery代码如下所示:

const req = couchbaseRepository.getBucketWrapper().streamQuery(streamQueryExp);

            req.on('row', (row) => {
                attributesIds.push(row.id);
            });

streamQuery是一个返回流的函数,可以用.on('event', function)

调用
streamQuery(queryString, args) {
    checkConnection(this.bucket);
    const query = couchbase.N1qlQuery.fromString(queryString);

    return this.bucket.query(query, args);
}

0 个答案:

没有答案