小编dar*_*der的帖子

JEST抛出.finally不是函数

这是我的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)

javascript reactjs jestjs

7
推荐指数
2
解决办法
1579
查看次数

JEST:通过innerHTML选择一个HTML元素

伙计们,我有一个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

有办法吗?如果没有,是否有其他方法可以做到这一点?

javascript unit-testing reactjs jestjs

1
推荐指数
1
解决办法
175
查看次数

标签 统计

javascript ×2

jestjs ×2

reactjs ×2

unit-testing ×1