测试圆形svg元素,反应和酶的半径

时间:2018-09-18 10:24:46

标签: reactjs typescript testing svg enzyme

我正在通过我的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圆的半径?

0 个答案:

没有答案