считают, что у меня есть следующее:
Примечание: примеры, показанные ниже, просто иллюстрируют идею для краткости и не учитывают случай использования в реальном мире
Файл: simpleCalcs. js
module.exports = function () {
return {
sum: (listOfNumbers) => {
console.log('inside test2 sum()');
return listOfNumbers.reduce((a, b) => a + b, 0);
}
}
};
Файл: mediumCalcs. js
const simpleCalcs = require('./simpleCalcs')();
module.exports = function () {
return {
avg: (listOfNumbers) => {
console.log('inside test1 avg()')
return simpleCalcs.sum(listOfNumbers) / listOfNumbers.length;
}
}
};
Файл: mediumCalcs.test . js
const sinon = require('sinon');
const expect = require('chai').expect;
const simpleCalcs = require('./simpleCalcs')();
const mediumCalcs = require('./mediumCalcs')();
describe('sample test', () => {
before(() => {
summationStub = sinon.stub(simpleCalcs, 'sum').returns(3);
});
it('average', () => {
const result = mediumCalcs.avg([1, 2, 3]);
expect(result).to.be.equal(1);
});
});
Этот тест не пройден, поскольку функция-заглушка не вызывается.
Как мне обеспечить, чтобы module.exports = function () {....}
позаботился о заглушке?
Способен ли sinon выполнять такие требования ??
PS Причина module.exports = function () {....}
в том, что вместо module.exports = {....}
используется потому, что можно вводить некоторые зависимости через параметры.