2016-08-13 5 views
1

입력 필드 값을 설정할 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 추가 정보가 필요하면 알려주십시오. 고맙습니다.React testing : 입력 필드 값 변경

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

답변

1

나는이 크게 테스트 구성 요소를 반응 단순화, 당신은 enzyme 살펴 보도록하는 것이 좋습니다.

효소를 사용하면 간단하게 수행 할 수 있습니다

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