我正在学习测试我的 React 组件。我有以下组件:
import React from 'react';
import PropTypes from 'prop-types';
import { firebase } from '../firebase';
export const Checkbox = ({ id, taskDesc }) => {
const archiveTask = () => {
firebase.firestore().collection('tasks').doc(id).update({
archived: true,
});
};
return (
<div
className="checkbox-holder"
data-testid="checkbox-action"
onClick={() => archiveTask()}
onKeyDown={(e) => {
if (e.key === 'Enter') archiveTask();
}}
aria-label={`Mark ${taskDesc} as done?`}
role="button"
tabIndex={0}
>
<span className="checkbox" />
</div>
);
};
在测试中,他们像这样测试 onClick 和 onKeyDown:
it('renders the task checkbox and accepts a onClick', () => {
const { queryByTestId } = render(
<Checkbox id="1" taskDesc="Finish this tutorial series!" />
);
expect(queryByTestId('checkbox-action')).toBeTruthy();
fireEvent.click(queryByTestId('checkbox-action'));
});
但他只是点击它而不检查是否调用了 onClick 函数。这个测试已经完成还是需要更多?
目前还不清楚 jest 将如何确定此点击测试是通过还是失败。