Итак, у меня есть файл с именем article.js
, который выглядит следующим образом:
import a from 'indefinite';
function formatArticle(value) {
return a(value);
}
export { formatArticle };
export default formatArticle;
И файл с именем index.js
, который выглядит следующим образом:
import formatArticle from './article';
const format = (value, incomingFormat) => {
if (incomingFormat === 'indefinite') {
return formatArticle(value);
}
return value;
};
export default format;
Я пытаюсь чтобы проверить, что функция formatArticle, которую я импортирую, вызывается, когда это необходимо. Я использую sinon
и chai
для этого. Вот файл теста:
import chai, { expect } from 'chai';
import sinon from 'sinon';
import sinonChai from 'sinon-chai';
import format from './index';
import * as article from './article';
chai.use(sinonChai);
describe('format', () => {
describe('article', () => {
describe(`when incoming format is 'indefinite'`, () => {
const value = 'some value';
const indefinite = 'indefinite';
let formatArticleSpy;
beforeEach(() => {
formatArticleSpy = sinon.spy(article, 'formatArticle');
format(value, indefinite);
});
it('should call formatArticle', () => {
expect(formatArticleSpy).to.have.been.calledWith(value);
});
});
});
});
Однако всякий раз, когда я запускаю набор тестов, он сообщает мне:
AssertionError: expected formatArticle to have been called with arguments some value
Что я делаю неправильно в этой настройке? Является ли использование шпиона правильным способом сделать это? Я также попытался использовать sinon.stub и получил тот же результат.
Любая помощь приветствуется!