Spec-Zone.ru › Enzyme

.setProps(nextProps[, callback]) => Self

Метод, который устанавливает свойства корневого компонента и перерисовывает его. Полезен для тестирования поведения компонента во времени при изменении свойств. Вызов этого метода, например, вызовет метод жизненного цикла componentWillReceiveProps.

Аналогично setState, этот метод принимает объект свойств и объединяет его с уже существующими свойствами.

ПРИМЕЧАНИЕ: может быть вызван только на экземпляре обёртки, который также является корневым экземпляром.

Аргументы

  1. nextProps (Object): Объект, содержащий новые свойства для объединения с текущими свойствами
  2. callback (Function [необязательно]): Если указан, функция обратного вызова будет выполнена после завершения setProps

Возвращаемое значение

ShallowWrapper: Возвращает себя.

Пример

import React from 'react';
import PropTypes from 'prop-types';

function Foo({ name }) {
  return (
    <div className={name} />
  );
}
Foo.propTypes = {
  name: PropTypes.string.isRequired,
};
const wrapper = shallow(<Foo name="foo" />);
expect(wrapper.find('.foo')).to.have.lengthOf(1);
expect(wrapper.find('.bar')).to.have.lengthOf(0);
wrapper.setProps({ name: 'bar' });
expect(wrapper.find('.foo')).to.have.lengthOf(0);
expect(wrapper.find('.bar')).to.have.lengthOf(1);
import sinon from 'sinon';

const spy = sinon.spy(MyComponent.prototype, 'componentWillReceiveProps');

const wrapper = shallow(<MyComponent foo="bar" />);
expect(spy).to.have.property('callCount', 0);
wrapper.setProps({ foo: 'foo' });
expect(spy).to.have.property('callCount', 1);

Связанные методы

  • .setState(state) => Self
  • .setContext(context) => Self

© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ShallowWrapper/setProps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API