Jest如何测试A函数中调用的B函数?

时间:2020-05-23 12:03:07

标签: javascript reactjs jestjs

例如,举一个例子:

// ListItem.tsx
interface Props {
    onTouchStart: (e: React.TouchEvent) => void;
}

const ListItem: React.FC <Props> = (props) => {
    const handleTouchStart = (e: React.TouchEvent) => {
        // Call the incoming function inside the component
        props.onTouchStart (e);
        // perform some other operations
    }

    return <div onTouchStart = {handleTouchStart}> </ div>
}

export default ListItem;
// ListItem.test.tsx
import {createElement} from 'rax';
import renderer from 'rax-test-renderer';

it ('Test ListItem TouchStart', () => {
    const mockFunc = jest.fn ();
    const component = renderer.create (<ListItem onTouchStart = {mockFunc} />)
    const tree = component.toJSON ();
    tree.eventListeners.touchstart ();
    // report an error
    expect (tree.eventListeners.touchstart) .toHaveBeenCalled ();
})
expect (received) .toHaveBeenCalled ()

    Matcher error: received value must be a mock or spy function

    Received has type: function
    Received has value: [Function handleTouchStart]

如何测试在测试用例中是否存在传递道具的功能?

如何测试在测试用例中是否调用了props中传递的函数?

0 个答案:

没有答案