【发布时间】:2020-03-12 18:44:14
【问题描述】:
这是一个我正在尝试快照测试的简单组件
import React from 'react'
// snapshot test for this
export default function DogItem(props) {
const { imageUrl, name, subBreeds } = props
return (
<Card title={name} width={350} m={2}>
<Img src={imageUrl}></Img>
<Flex mt={2}>
{subBreeds.map(breed => (
<Badge key={breed.name} primary mr={2}>
{breed}
</Badge>
))}
</Flex>
</Card>
)
}
这是我的 Jest 测试用例
import DogItem from '../DogItem'
import React from 'react'
import { shallow } from 'enzyme'
it('Renders table with correct attributes', () => {
let rendered = shallow(
<DogItem imageUrl="testUrl" name="dog name" subBreeds={[1, 2, 3]} />
)
console.log(rendered.debug());
})
在输出中我得到了这个
<Img src="testUrl" />
<Flex mt={2}>
<WithTheme(Component) primary={true} mr={2}>
1
</WithTheme(Component)>
<WithTheme(Component) primary={true} mr={2}>
2
</WithTheme(Component)>
<WithTheme(Component) primary={true} mr={2}>
3
</WithTheme(Component)>
</Flex>
</WithTheme(Component)>
我不太清楚为什么我得到的是WithTheme(Component) 而不是Badge 或Img。我确实意识到这些组件是样式化的组件,但是浅层只是假设渲染一层深,对吗?
【问题讨论】:
标签: reactjs jestjs enzyme styled-components snapshot