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')
と比較ということだと思う何でも
に取り組んでジャスミンのテストを設定あなたの男をありがとう!あなたが正しい !!よくやった :) – kMM