在React上测试简单的表单验证

时间:2016-10-05 10:06:33

标签: javascript reactjs redux react-redux redux-form

我正在尝试测试反应还原形式验证,我在这个测试中找不到我做错的事。

在我的上下文中,当字段值小于5个字符时,我必须显示一条简单的消息。

当我在浏览器中启动应用程序时,我的验证器工作正常。

我的问题是关于我应该写的测试才能使它工作。它没有通过绿色:

it('should display a "Not long enough" in a class .field-error', () => {
      const input = TestUtils.findRenderedDOMComponentWithTag(searchBar, 'input');
      TestUtils.Simulate.focus(input);
      input.value = 'Test';
      TestUtils.Simulate.change(input);
      TestUtils.Simulate.blur(input);
      const fieldError = TestUtils.findRenderedDOMComponentWithClass(searchBar, 'field-error');
      expect(fieldError.textContent).toEqual('Not long enough');
    });

它无法告诉我它找不到元素字段错误(在DOM中启动时很好地显示)。

如何让测试通过?我很确定这是一个测试实现问题......

我正在使用React,Redux,Redux Form和Redux-mock-store。

感谢您的帮助。

编辑:有关的渲染方法:

render() {
    const {fields: {inputField}} = this.props;
    return (
      <form>
        <input type="text" placeholder="Rechercher" {...inputField}/>
        {inputField.touched && inputField.error && <div className="field-error">{inputField.error}</div>}
        <button type="submit">Rechercher</button>
      </form>
    );
  }

0 个答案:

没有答案