Я новичок в модульном тестировании с использованием mocha и sinon, просто чтобы узнать больше, я поставил функцию для возврата некоторой строки, в своем коде я вызываю эту функцию как внутреннюю функцию. Мой тест состоит в том, чтобы видеть, назначена ли заглушка возвращаемая строка переменной. Пожалуйста, посмотрите на фрагмент кода, чтобы понять больше
file.spe cjs
let sinon = require("sinon");
let filejs = require('./file.js');
let expect = require ("chai").expect;
it('should run only the outer function' ,function() {
// I try to stub my function here
sinon.stub(filejs,'test1').callsFake ((someArg) => {
return "stubbed string";
});
// Now I will call my test outer function
filejs.test();
expect(filejs.param).to.equal("stubbed string");
})
let param;
module.exports = {
test,
test1
}
function test () {
module.exports.param = test1();
}
function test1() {
console.log("should not be called);
let data = "some data";
return data;
}
Поскольку я уже озвучил функцию test1 Я не ожидаю, что это будет вызвано, и возвращение из test1 назначено параметру, и, поскольку мы фальсифицировали функцию, возвращающую другую строку, я ожидаю, что для этой строки будет задана переменная param.
Но когда я запускаю тест, я вижу эту ошибку
AssertionError: ожидалось, что "некоторые данные" будут равны "короткой строке"