1

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

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 };
    }
4

1 回答 1

0

我建议你看一下,它显着简化了反应成分的测试。

使用酶,您可以简单地做到:

const form = mount(<MyComponent />);
const input = form.find('input').get(0);
input.value = 'Blah blah';
于 2016-08-13T15:18:59.637 回答