Sinon存根未使用

时间:2019-04-26 20:17:54

标签: node.js mocha sinon

我有一个lambda函数,该函数引用另一个文件中的模块定义。 不必在测试中正确设置所有场景,我只想拥有该模块的存根即可。 在app.js中

var Service = require("./Services/Service");
let service = new Service(event.Environment);
        var regulatorResults = await service.GetModifiers(budgeted, irrelevant, variables);

服务定义如下:

function Service(environment) {
    async function GetModifiers(ids, irrelevant, things) {
//logic happens
}
    return { GetModifiers };
}
module.exports = Service;

我在测试中尝试了许多不同的迭代,但是我觉得最接近的是:

var assert = require('assert');
var sinon = require('sinon');
var service = require('../Services/Service');

describe('Calculator', function () {
before(function () {
        var service = sinon.createStubInstance(regulatorService);


        sinon.stub(service.prototype, "GetModifiers").callsFake(async function(IDs, thing, thing) {
            return IDs.map(id=> new { ID: id, Modifier: 1 });
        });
    });

当我运行实际测试时,该服务的结果为[],即使我对存根进行了编码以返回一个设定值,并且即使我将它插入console.log中,也永远不会被击中。 测试失败,错误为Error: Trying to stub property 'GetModifiers' of undefined

感谢您的帮助!

0 个答案:

没有答案