Окурки синона не используются - PullRequest
1 голос
/ 26 апреля 2019

У меня есть лямбда-функция, которая ссылается на определение модуля в другом файле.Вместо того, чтобы получить все сценарии прямо в моих тестах, я хотел бы просто заглушить этот модуль.В 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.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...