По умолчанию модули импортируются в поведении типа Singleton в узле, например
const app = require('./app');
app.someProperty = 'x';
Если я require
приложение снова в другом файле после этого, то можно ожидать, что someProperty
будет по-прежнему x
, поскольку, как вы уже разработали, Node будет кэшировать результат и возвращать один и тот же каждый раз.
В вашем случае это меньше проблема с Node, а больше ваше использование Sinon - когда вы что-то делаете stub
, обычной практикой является восстановление значения после завершения теста, например,
const app = require('...');
before(() => sinon.stub(app,'someFunction'));
after(() => app.someFunction.restore());