Проверка вызова onBlur - PullRequest
       10

Проверка вызова onBlur

0 голосов
/ 18 октября 2018

Я искал, как сделать это в течение 2 часов, но не смог заставить его работать.У меня есть класс с именем базовый текст, который отображает поле ввода.Я пытаюсь проверить, вызвана ли функция onBlur.Но я не могу пройти тест.Я получаю

TypeError: Невозможно прочитать свойство '_isMockFunction' из неопределенного

Есть ли способ проверить, вызывается ли функция onBlur с mock?

BaseText.js

looseFocus = event => {
    const { value } = event.target;
    const { mustEnter, mustFill, limit } = this.props;
    if (mustEnter) {
      if (value.length < 1) {
        alert('Missing info.');
      }
    }
    if (mustFill && limit > 0) {
      if (value.length < limit) {
        alert('Missing info.');
      }
    }
  };

  render() {
    const {
      /...constants
    } = this.props;
    const { value } = this.state;
    return visible ? (
      <Input
        disabled={disabled}
        placeholder={text}
        name={name}
        value={value}
        onChange={this.handleChange}
        onBlur={this.looseFocus}
        style={Styles}
        minLength={minLength}
        exception={exception}
        mustEnter={mustEnter}
        // prefix={this.props.prefix}
        type={type}
        maxLength={limit < 0 ? null : limit}
        //    menuRef={this.props.menuRef}
        //    zeroPad={this.props.zeroPad}
      />
    ) : null;
  }
}

BaseText.test.js

const defaultBaseText = shallow(<BaseText />);

    describe('BaseText should make a function call on blur.', () => {
      it('blur it', () => {
        const instance = defaultBaseText.instance();
        const spy = jest.spyOn(instance, 'onBlur');

        instance.forceUpdate();

        const p = defaultBaseText.find('Input');
        p.simulate('blur');
        expect(spy).toHaveBeenCalled();
      });
    });

1 Ответ

0 голосов
/ 18 октября 2018

Ваш компонент BaseText не имеет метода, называемого onBlur, но looseFocus.

. Вы должны попытаться подсмотреть looseFocus в своем экземпляре и посмотреть, вызывается ли он при моделированиисобытие размытия.

Кодовый ящик из вашего кода: https://codesandbox.io/s/ovjwnln4o9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...