私は反応クラス法を酵素で試験しようとしています。メソッドは入力の変更を処理し、状態を設定する必要があります。私は「プロパティを読み取ることができません 'というエラーを取得していますSETSTATE'反応成分内の試験方法
class LoginPage extends Component {
constructor(props) {
super(props);
this.state = {
username: '',
password: ''
};
this.handleChange = this.handleChange.bind(this);
...
}
handleChange(event) {
this.setState({[event.target.name]: event.target.value})
}
...
return(
...
<TextField name='username' onChange={this.handleChange} />
)
test.js
it('handles change',() => {
const spy = sinon.spy(LoginPage.prototype, 'handleChange');
const _wrapper = shallow(<LoginPage />);
spy({
event: {
target: {
name: 'username',
value: 'username'
}
}
}
);
expect(_wrapper.state().username).to.equal('username');
})
})
未定義component.jsの。
この 'TextField name = 'username' onChange = {(e)=> this.handleChange(e)} />'を試してみると、レンダリングメソッドはどこですか? – prosti
私は 'TypeError:既にwrappedされているhandleChangeをラップしようとしました.'でも、スパイとテストの終わりにrestore()を実行しました。私はそれが正規のコードであるときにテストを動作させるためにコンポーネントを変更したくないと思う。 '...'が表すコードの一部を切り捨てて、レンダリングしてコンポーネントを細かくレンダリングします。 – Mantis
コンポーネントが実際に動作しています。あなたはテストを統合するときに問題があります。右? – prosti