我正在通过我的react应用程序并实现测试,但我不知道如何测试svg圆的半径。半径通过道具向下传递。我的React组件在下面;
import * as React from 'react';
export interface Props {
radius: number
}
const UserPicture = (props: Props) => {
var diameter = props.radius * 2;
return (
<svg className="userPicture" height={diameter} width={diameter}>
<circle cx={props.radius} cy={props.radius} r={props.radius} stroke="black" fill="white" />
</svg>
)
}
export default UserPicture;
...目前无法进行的测试如下所示。
test('User Picture renders svg > circle element with correct radius passed by props second test', () => {
const radius = 15;
const userPicture = Enzyme.shallow(<UserPicture radius={radius} />);
expect(userPicture.find('svg > circle').at(0).prop("r")).toBe(radius);
});
我知道此测试正在寻找圆,因为我有一个“必须渲染而不会崩溃”功能,但是上面的测试返回的是未定义的。似乎没有办法使用酶来返回高度,宽度或其他任何值(除非通过.prop
),我是否丢失了某些东西?如何测试svg圆的半径?