2016-05-17 4 views
0

私はTestUtils.Simulate reactJSメソッドをテストするための非常に簡単なコンポーネントを作成します。しかし、私はなぜこのメソッドが私のコンポーネントの値を更新しないのかわかりません。私は間違った方法で私のコードを書いたと思います。TestUtils.Simulate.changeは入力値を更新しません

これは私の小さな部品である:

'use strict'; 

var React = require('react'); 

var MyComponent = React.createClass({ 


    getInitialState: function() { 
     return {value: 'a'}; 
    }, 
    handleChange: function (event) { 
     this.setState({value: event.target.value}); 
    }, 
    render: function() { 
     return (
      <div> 
       <input 
        ref="inp" 
        type="text" 
        value={this.state.value} 
        onChange={this.handleChange} 
       /> 
      </div> 
     ); 
    } 
}); 

module.exports = MyComponent; 

そして、これはテストページです:

jest.disableAutomock(); 
jest.unmock('../resources/assets/js/testcomponents/testvalue'); 


var React = require('react'), 
    MyComponent = require('../resources/assets/js/testcomponents/testvalue.js'), 
    TestUtils = require('react-addons-test-utils'), 
    ReactDOM = require('react-dom'); 



describe('MyComponent', function() { 

    var AppElement = TestUtils.renderIntoDocument(<MyComponent/>); 
    var DomElement = ReactDOM.findDOMNode(AppElement); 

    var input = DomElement.getElementsByTagName('input')[0]; 



    console.log('INPUT 1 as string: ' + input.outerHTML); 

    it('type', function() { 
     console.log('type=' + input.getAttribute('type')); 
     expect(input.getAttribute('type')).toEqual('text'); 
    }); 

    it('value', function() { 
     console.log('value=' + input.getAttribute('value')); 
     expect(input.getAttribute('value')).toEqual('a'); 
    }); 

    it('change', function(){ 


     TestUtils.Simulate.change(input, {target: {value: 'giraffe'}}); 
     expect(input.getAttribute('value')).toEqual('giraffe'); 
    }); 
}); 

ラインTestUtils.Simulate.change(入力、{目標:{値: 'キリン' }}));私は主な問題は、あなただけのオリジナルの値が含まれてい

input.getAttribute('value') 

と比較ということだと思う何でも

答えて

1

がありません。あなたが好きな更新された値をチェックする必要があります。

expect(input.value).toEqual('giraffe'); 

私はjsfiddle Click

+0

に取り組んでジャスミンのテストを設定あなたの男をありがとう!あなたが正しい !!よくやった :) – kMM

関連する問題