У меня есть файл foo.js
который выглядит следующим образом:Утверждайте внутренняя функция называется
var exec = require('child_process').exec
...
function start(){
...
exec('open -g http://localhost:<port>'); // opens a browser window
}
// EOF
Я хочу, чтобы проверить, что, когда я вызываю функцию start()
, окно браузера получает открыто. В идеале я хотел бы использовать Sinon для того, чтобы вырезать exec
(чтобы мы не фактически открывали окно браузера во время автоматических тестов), и утверждают, что был вызван exec
. Я пробовал много способов, ни одна из которых не работает. Например, в foo_test.js
:
var subject = require('../lib/foo');
describe('foo', function(){
describe('start', function(){
it('opens a browser page to the listening address', function(){
var stub = sinon.stub(subject, 'exec', function(){
console.log('stubbed exec called');
}); // fails with "TypeError: Attempted to wrap undefined property exec as function"
});
});
});
Как бы я идти об этом?