describe('testing inner component', function() {
beforeEach(function() {
this.sandbox = sinon.createSandbox();
this.getEstimatedCost = this.sandbox.stub().returns(Promise.resolve({ estimatedCost: 10 }));
this.renderComponent = (props = {}) => {
const store = createMainReduxStore({
// some store.
});
return (
<Router>
<Provider store={store}>
<Layout>
<FooPage getEstimatedCost={this.getEstimatedCost} />
</Layout>
</Provider>
</Router>
);
};
});
afterEach(function() {
this.sandbox.restore();
});
describe('when rendered', function() {
beforeEach(function() {
this.wrapper = enzyme.mount(this.renderComponent());
return Promise.resolve().then(() => this.wrapper.update());
});
it('calls getEstimatedCost', function() {
expect(this.getEstimatedCost).to.have.been.calledOnce;
expect(
this.wrapper
.find('Router')
.find('Layout')
.find('FooPage')
.state('estimatedCost')
).to.equal(10);
});
});
});
Я хочу проверить, устанавливает ли метод «getEstimatedCost» состояние «оценочного значения» FooPage.
Здесь я получаю сообщение об ошибке:
Ошибка: метод «экземпляр»предназначен для запуска на 1 узле.0 найдено вместо.в ReactWrapper.single (узел_модули / фермент / сборка / ReactWrapper.js: 1718: 17) в ReactWrapper.instance (узел_модули / фермент / сборка / ReactWrapper.js: 321: 21) в ReactWrapper.state (узел_модульс / фермент / сборка / ReactWrapper.js: 1035: 18) в Context.state (тест / организация / компоненты / настройки / FooPage.spec.js: 94: 12) в process._tickCallback (внутренний / process / next_tick.js: 68: 7)