簡體   English   中英

如何使用 Jest + Enzyme 覆蓋 Svg 反應組件的測試用例

[英]How to cover test cases for Svg react component using Jest + Enzyme

我對反應測試比較陌生。 任何幫助/建議表示贊賞。 我有這個簡單的PencilIcon組件。 我看到了測試覆蓋率報告,下面的粗體文本表示那些粗體文本或代碼行不在測試覆蓋范圍內。

我如何確保對這些文本行進行測試覆蓋。 有人可以指出我如何為下面的粗體文本編寫測試用例。

我無法使代碼加粗。 基本上,下面這行代碼沒有包含在測試覆蓋率報告中。

const classNames = getClasses({ styles, classes: ['pencilIcon'], className, brand })***
  return (

這是完整的組件

import React from 'react'
import { getClasses } from '../es/lib'
import SvgIcon from '../SvgIcon'
import styles from './PencilIcon.less'

const PencilIcon = ({ brand, className, ...keepProps }) => {
  const classNames = getClasses({ styles, classes: ['pencilIcon'], className, brand })
  return (
    <SvgIcon {...keepProps} className={classNames} viewBox="0 0 44 44">
      <path d="M18.999 31.396l-6.83 2.704a8.362 8.362 0 0 0-.868-1.026 8.535 8.535 0 0 0-1.438-1.148l2.74-6.924-1.208-1.209-5.127 12.954a.764.764 0 0 0 .16.826.764.764 0 0 0 .825.16l12.955-5.128-1.209-1.209zM36.949 11.929L32.07 7.051a2.87 2.87 0 0 0-2.029-.841c-.734 0-1.469.28-2.029.841l-15.8 15.803 8.937 8.937L33.56 19.377l3.39-3.39a2.869 2.869 0 0 0-.001-4.058zm-10.799.038l2.237 2.238L17.503 25.09l-2.237-2.236L26.15 11.967zm-5.002 16.768l-2.117-2.117 10.885-10.886 2.116 2.116-10.884 10.887z" />
    </SvgIcon>
  )
}

PencilIcon.defaultProps = {
  title: 'Edit',
  width: '44px',
  height: '44px'
}

export default PencilIcon

這是導入到上述組件中的getClasses

export const getClasses = ({
  styles = {},
  classes = [],
  className = '',
  brand = '',
  device = {}
}) => {
  const classesInStyles = classes.concat([brand]).filter(_class => !!_class).map(name => styles[name]);

  if (device.platform) {
    classesInStyles.push(styles[device.platform === '7P' ? 'desktop' : 'mobile']);
    device.keyboardOpen && classesInStyles.push(styles.keyboard);
  }

  return [...classesInStyles, className].join(' ').trim();
};

我建議從不同的文件中導入這一行並將其排除在測試覆蓋范圍之外。

<SvgIcon {...keepProps} className={classNames} viewBox="0 0 44 44">
  <path d="M18.999 31.396l-6.83 2.704a8.362 8.362 0 0 0-.868-1.026 8.535 8.535 0 0 0-1.438-1.148l2.74-6.924-1.208-1.209-5.127 12.954a.764.764 0 0 0 .16.826.764.764 0 0 0 .825.16l12.955-5.128-1.209-1.209zM36.949 11.929L32.07 7.051a2.87 2.87 0 0 0-2.029-.841c-.734 0-1.469.28-2.029.841l-15.8 15.803 8.937 8.937L33.56 19.377l3.39-3.39a2.869 2.869 0 0 0-.001-4.058zm-10.799.038l2.237 2.238L17.503 25.09l-2.237-2.236L26.15 11.967zm-5.002 16.768l-2.117-2.117 10.885-10.886 2.116 2.116-10.884 10.887z" />
</SvgIcon>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM