Jest with Styled Components 错误:解析预期 css 的语法错误:缺少“”

Posted

技术标签:

【中文标题】Jest with Styled Components 错误:解析预期 css 的语法错误:缺少“”【英文标题】:Jest with Styled Components error: Syntax error parsing expected css: missing ''Jest with Styled Components 错误:解析预期 css 的语法错误:缺少“” 【发布时间】:2021-03-07 17:00:45 【问题描述】:

我正在尝试将 jest 与样式化组件一起使用来测试组件的样式,但我遇到了错误:

Syntax error parsing expected css: missing '' here
Failing css:
[object Object]

我的组件是一个带有 styled-components 的简单链接:

import styled from 'styled-components'

export const Link = styled.a`
  color: #fff;
`

我的测试:

describe('Link', () => 
  it('should display color on the link', () => 
    render(<Link href="/x">Test</Link>)
  

  expect(screen.getByRole('link',  name: /test/i )).toHaveStyle( color: '#fff' )

我正在运行 npm react-scripts 测试。

我尝试导入“jest-styled-components”和“@testing-library/jest-dom”

【问题讨论】:

【参考方案1】:

可能是因为你使用的@testing-library/jest-dom包的版本。

对于v4.2.4,toHaveStyle(css: string),可以看到,匹配器只支持string参数。因此,您应该使用

expect(link).toHaveStyle(`color: #fff`);

自v5.1.0起支持JS对象参数

【讨论】:

以上是关于Jest with Styled Components 错误:解析预期 css 的语法错误:缺少“”的主要内容,如果未能解决你的问题,请参考以下文章

JEST STYLED COMPONENTS - toHaveStyleRule 没有找到属性

text jest / styled-components快照bug ...

Jest styled-components 4.1.1 测试被破坏

Jest、Enzyme 和 Styled Component 不适用于警告:React.createElement

使用 Jest-Enzyme 测试样式组件

Styled-Components 的 .attrs() 函数的用例是啥?