Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
const someComponent = ()....
const mapStateToProps = (state) => ({
awesomeData: coolSelectorFromReduxStore
});
const ConnectedComponent = connect(connect(
mapStateToProps
)(someComponent);
// test.js
const proxyquire = require('proxyquire');
const sinon = require('sinon');
const assert = require('assert');
const uptime = sinon.spy();
proxyquire('./app', { process: { uptime } });
const app = require('./app');
assert(uptime.notCalled);
app.uptime();
assert(uptime.calledOnce);
// app.js
const process = require('process');
module.exports = {
uptime: process.uptime,
};
const app = proxyquire.noPreserveCache().load('./app', { process: { uptime } }); // app с мокнутым process
const app = require('./app'); // "настоящий" app, как и должно быть
rewiremock('process').with({uptime});
rewiremock.enable();
const app = require('./app'); // app с мокнутым process
rewiremock.disable(); // вычистит все затронутые модули
const app = require('./app'); // "настоящий" app, как и должно быть
От каждого по способностям, каждому по потребностям.
rewireMock('file1'); // do nothing, just indicate mock, to wipe it from a cache
rewireMock('file2');
rewireMock('file1').with(something); // override mock.
Mockанье зависимостей в node.js приложениях