Я новичок в мокко / чае. Я пытаюсь написать модульный тестовый пример для следующего сценария. Я хочу проверить, вызываются ли «callchildfunc» и «childfunc2» или нет при вызове функции «parent()».
Я прочитал основы и понял, что если вы шпионите за какой-либо функцией, просто поставьте assert для этой функции, чтобы проверить, вызывается ли эта функция или нет. Средства в приведенном выше файле сценария. Если я буду следить за функциями «childfunc2» и «callchildfunc», то мне не нужно вызывать здесь тестовый файл, поскольку он уже вызывается в файле сценария в родительской функции. Пожалуйста, поправьте мое понимание, если я ошибаюсь.
Это мой файл script.js
// script.js
function childfunc2(){
console.log("child function without return");
}
function callchildfunc(var1, var2){
return var1 + var2;
}
function parent(x){
var getreturnval = callchildfunc(x, 1);
console.log(getreturnval);
childfunc2();
}
Это мой тестовый файл.
//scenario 1
describe('Test for parent() function ', function(){
it('should make parent call ', function(){
var spy1 = sinon.spy(window, 'callchildfunc');
var spy2 = sinon.spy(window, 'childfunc2');
parent(2);
expect(spy1).to.have.been.called();
expect(spy2).to.have.been.called();
// or
sinon.assert.calledOnce(spy1);
sinon.assert.calledOnce(spy1);
});
});
После запуска теста всегда я получаю эту ошибку.
AssertError: expected childfunc2 to be called once but was called 0 times
Также, если я изменю тестовый файл и вызову шпионскую функцию, она будет работать.
var spy1 = sinon.spy(window, 'callchildfunc');
var spy2 = sinon.spy(window, 'childfunc2');
parent(2);
// After addding these below 2 lines.
window.childfunc2();
window.callchildfunc();
Любая помощь?
npm test
, что выполняет скриптtest
в package.json? - person Lennholm   schedule 22.03.2018ReferenceError: window is not defined
. Тот факт, что вы получаете другую ошибку, меня смущает. Я думаю, вам нужно добавить больше информации о вашей настройке, но я не уверен, что смогу вам помочь, извините. - person Lennholm   schedule 23.03.2018