我有一个React组件,它接受一个对象作为prop:
const Button = ({ customCss }) => (
<div><AnotherChildComponent customCss={customCss} /></div>
)
在Jest(v29)中,我希望有一个快照测试来覆盖我传递给子组件的对象:
describe('<Button />', () => {
let elem
beforeAll(() => {
const renderResult = render(<Button customCss={{ color: 'blue' }} />);
elem = renderResult.container.firstChild
})
it('should have snapshot', () => {
expect(elem).toMatchSnapshot();
})
})
然而,我的快照并没有显示整个对象,它只是在我的对象上调用.toString()
:
// Jest Snapshot v1,
exports[`<Button /> should have snapshot 1`] = `<div>
<AnotherChildComponent
customcss="[object Object]"
/>
</div>
`;
如何将Jest/Testing Library更改为JSON.stringify
my prop而不是toString
ing?
@testing-library/react@^14
1条答案
按热度按时间dxxyhpgq1#
您可以使用自定义序列化程序为快照配置JEST
实际上,您可以提供生成快照输出的逻辑,因此如果您想使用
JSON.stringify
,您可以在自己的实现中实现它。...或者,如果你发现
JSON.stringify
的输出足够了,你可以使用JSON.stringify
内联:有关其签名的更多信息,请参见JSON.stringify