【发布时间】:2019-07-20 10:42:25
【问题描述】:
我能够在这个文件上测试一些 onClick 事件,但是当涉及到下面的代码时,我无法测试。 我相信的主要原因是因为 render 中有一个类我无法对其进行测试
我尝试通过 className、id 等进行测试。但仍然遇到同样的错误。
使用 jest 和酶 - React JS
这是我要测试的 onClick 事件:
<div className='report-wrapper'>
<div className='fields-item-wrapper span-two-col'>
<label className='workflow-label' for=''> Contacts </label>
<Select
className={'field-input-select margin-right'}
id=''
value={this.state.Contact}
onChange={(e) => {let val = e ? e.value : null; this.setState({Contact: e, Account: null, accountOptions: []}); this.getAccounts(e)}}
onClick={() => {this.setState({showRequired: false})} }
options={this.state.contactOptions}
isDisabled={loading}
/>
</div>
使用 jest 和酶 - 我已经安装了组件
describe(' Edit Data Test', () => {
let wrapper;
beforeEach(() => wrapper = mount(<BrowserRouter><Component {...baseProps} /></BrowserRouter>));
it("should check button click event - Select class", () => {
baseProps.onClick.mockClear();
wrapper.setState({
showRequired: false,
});
wrapper.update()
wrapper.find('#test').simulate("click");
});
【问题讨论】:
-
什么是
'#test'?听起来好像没有找到你的元素.... -
以前是 id=' ' ,我添加了 test 只是为了尝试找到 id 但它没有找到元素
-
那么通过标签或者类名选择select元素?
-
我通常通过类名或id进行测试,但找不到。此选择位于 render() 内
-
@epascarello 有什么线索吗?
标签: javascript reactjs onclick jestjs enzyme