【问题标题】:React testing: Change value of input field反应测试:更改输入字段的值
【发布时间】:2016-12-20 09:18:28
【问题描述】:

我无法设置输入字段的值。我究竟做错了什么? 如果需要更多信息,请告诉我。谢谢。

describe('SignUpComp', () => {
    let signUpComp, node;

    beforeEach(() => {
        signUpComp = TestUtils.renderIntoDocument(<SignUp />);
        node = ReactDOM.findDOMNode(signUpComp);
    });

    // First name
    it('it should trigger error `min chars` if input firstName is too short', () => {
        let elements = selectElements('firstName');

        TestUtils.Simulate.change(elements.input, { target: { value: 'abc' } });
        console.log(elements.input); // I can not see the change
        console.log(node); // I can not see the change

        expect(elements.error.textContent).to.equal(errorMsg.tooShort('First name', 2));
    });

    function selectElements(element) {
        let input = node.querySelector('#' + element);
        let error = node.querySelector('#' + element + '+ p');

        return { input, error };
    }

【问题讨论】:

    标签: reactjs reactjs-testutils


    【解决方案1】:

    我建议你看看enzyme,它大大简化了测试反应组件。

    使用酵素,您可以做的很简单:

    const form = mount(<MyComponent />);
    const input = form.find('input').get(0);
    input.value = 'Blah blah';
    

    【讨论】:

    • "使用 {insert something the question is not ask about here},这很容易!"你认为如果这么简单,他们早就尝试过了
    猜你喜欢
    • 2017-12-06
    • 2021-10-25
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多