首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest快照失败: val.getMockName不是一个函数

Jest快照失败: val.getMockName不是一个函数
EN

Stack Overflow用户
提问于 2018-07-30 01:05:18
回答 1查看 3.1K关注 0票数 7

我正在尝试为一个小的react组件设置一个快照,但是我一直收到以下错误

代码语言:javascript
复制
TypeError: val.getMockName is not a function

it('renders correctly', () => {
const wrapper = renderer.create(<Partners content={content} />).toJSON()
> 
expect(wrapper).toMatchSnapshot()
               ^
})

这是我的测试文件:

代码语言:javascript
复制
import React from 'react'
import renderer from 'react-test-renderer'
import Partners from './index'
import { content } from '../../content/anywhere-everywhere'

jest.mock('react-lazy-load', () => 'LazyLoad')

it('renders correctly', () => {
  const wrapper = renderer.create(<Partners content={content} />).toJSON()
  expect(wrapper).toMatchSnapshot()
})

这是组件

代码语言:javascript
复制
import React from 'react'
import LazyLoad from 'react-lazy-load'

const Partners = ({ content }) => (
  <section className="partners">
    <h3>{content.partnersCopy}</h3>
    <div className="partners__slider">
      {content.partnerLogos.map((partnerLogo, index) => (
        <LazyLoad key={index}>
          <img src={partnerLogo.src} alt={partnerLogo.alt} />
        </LazyLoad>
      ))}
    </div>
  </section>
)

export default Partners

我设置了一个模拟文件夹

代码语言:javascript
复制
'use strict'

const LazyLoad = jest.genMockFromModule('react-lazy-load')

export default LazyLoad
EN

回答 1

Stack Overflow用户

发布于 2018-08-08 14:01:29

只要使用字符串解析图像源,它将解决您的问题。

示例:在package.json中,我从

代码语言:javascript
复制
"jest": {
    "moduleNameMapper": {
"^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "identity-obj-proxy"
  }
 }

代码语言:javascript
复制
"jest": {
    "moduleNameMapper": {
"^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": ""<rootDir>/__mocks__/fileMock.js"
        }
    }

并在根目录中的__mocks__/fileMock.js中创建了一个包含以下内容的文件:

代码语言:javascript
复制
module.exports  =  'test-file-stub'

你可以在这里查看更多细节。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51585846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档