【发布时间】:2019-12-24 12:04:39
【问题描述】:
模拟按钮点击似乎是一个非常简单/标准的操作。但是,我无法让它在 reacyt Jest.js 测试中工作。
以下是我尝试过的内容,错误消息是什么以及我要测试的代码
我要测试的代码
class Home extends React.Component {
constructor(props) {
super(props)
this.state = {
showAssessment: false
};
}
assessment = (boolean) => {
this.setState({
showAssessment: boolean
})
}
render() {
if (this.state.showAssessment === true) {
return <App
assessment = {
this.assessment
}
/>
} else {
return ( < div className='container-fluid' style={landingPage}>
<
Component1 / >
<
button className='btn btn-dark' style={matchToolButton} onClick = {
() => this.assessment(true)
} > Match Tool < /button> < /
div > )
}
}
}
我写的测试:
import React from 'react';
import { shallow, mount, render } from 'enzyme';
import Home from './Home';
test ('Home Button', () => {
it ('It calls assessment function when clicked', () => {
const wrapper = mount(<Home/>); // rednoing the home componenet/ testing
wrapper.instance().assessment = jest.fn(); //if this isn't working try wrapper.instance().assessment
wrapper.find('button').simulate('click');
expect(wrapper.assessment).toHaveBeenCalled();// see comment on line 14 keep the same
});
});
我收到的错误消息
FAIL src/Home.test.js
● Test suite failed to run
/Users/mbyousaf/Desktop/Bucket/dsp_poc2_uwe/front-end/src/Home.test.js: Unexpected token (12:30)
10 |
11 |
> 12 | const wrapper = mount(<Home/>); // rednoing the home componenet/ testing
| ^
13 | wrapper.instance().assessment = jest.fn(); //if this isn't working try wrapper.instance().assessment
14 |
15 | wrapper.find('button').simulate('click');
【问题讨论】:
-
看来问题不在于
simulate函数。您是否已将enzyme-adapter-react-16添加为项目依赖项并进行配置? -
是的,我已经添加到我的项目依赖项中,但我遇到了同样的问题
标签: javascript reactjs jestjs enzyme