这是我的react组件:
import { sendAnalytics } from 'analytics';
class MyComponent extends React.Component {
myMethod() {
console.log('do something!');
}
render() {
return (
<Button
onClick={submitAnalytics({name: 'foo'}).finally(this.myMethod())}
dataset={{"data-id": "button"}}
> Send Analytics
</Button>
}
)
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试是这样的:
import * as analytics from 'analytics';
jest.mock('analytics');
describe('Analytics', () => {
it('Should call analytics when button is clicked', () => {
analytics.submitAnalytics.mockResolvedValue(Promise.resolve(true));
const tree = ReactTestRenderer.create(<MyComponent />);
// Actual implementation of following 3 lines is slightly different.
const button = tree.root.findByProps({"data-id": "button"});
button.props.onClick();
expect(analytics.submitAnalytics).toHaveBeenCalled();
}); …Run Code Online (Sandbox Code Playgroud) 伙计们,我有一个React组件,在渲染时它具有以下HTML:
<button class="encryped-class__2TKgPzyme4 encryped-class__1ZnNbe3gTn">1</button>
Run Code Online (Sandbox Code Playgroud)
这是一个分页按钮,我想模拟一次单击。选择此元素的方法是:
const wrapper = Enzyme.mount(<Component {...someDefaultProps} />);
wrapper.find("button.encryped-class__2TKgPzyme4")
.first()
.simulate("click");
Run Code Online (Sandbox Code Playgroud)
我想用innerHTML值选择它1。
有办法吗?如果没有,是否有其他方法可以做到这一点?