例如,举一个例子:
// 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中传递的函数?