2016-08-13 5 views
1

Ich kann den Wert des Eingabefeldes nicht einstellen. Was mache ich falsch? Wenn weitere Informationen benötigt werden, bitte sag es mir. Vielen Dank.Reaktionstest: Wert des Eingabefeldes ändern

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

Antwort

1

empfehle ich Ihnen bei enzyme einen Blick zu nehmen, ist es deutlich Testkomponenten reagieren vereinfacht.

Mit Enzym können Sie tun einfach:

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