jest的快照不能生成

来源:5-4 价格题目列表测试分析和编写

慕尼黑7354265

2019-12-14

// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`test PriceList component  should render the component to match snapshot 1`] = `ShallowWrapper {}`;

为啥最终的输出是这样子呢?

写回答

3回答

张轩

2019-12-16

同学你好 新版的 jest (24版本以上),使用 jest 和 enzyme 生成快照需要使用 enzyme-to-json 这个库:https://github.com/adriantoine/enzyme-to-json 


1
3
爱笑的小熊猫
回复
张轩
期待老师的新课程 之前会有直播来剧透新课内容嘛
2020-12-05
共3条回复

慕尼黑7354265

提问者

2019-12-15


import React from 'react'
import {shallow} from 'enzyme'
import PriceList from '../PriceList'
import {items,categories} from '../../containers/Home'
import Ionicon from 'react-ionicons'

const itemsWidthCategory = items.map(item => {
item.category = categories[item.cid]
return item
})

const props = {
items:itemsWidthCategory,
onModifyItem:jest.fn(),
onDeleteItem:jest.fn()
}

describe('test PriceList component ', () => {
let wrapper
beforeEach(()=>{
wrapper = shallow(<PriceList {...props} />)
})
it('should render the component to match snapshot',()=>{
expect(wrapper).toMatchSnapshot()
})
it('should render correct price items length',()=>{
expect(wrapper.find('.list-group-item').length).toEqual(itemsWidthCategory.length)
})
it('should render correct icon and price for each item',()=>{
const iconLists = wrapper.find('.list-group-item').first().find(Ionicon)
expect(iconLists.length).toEqual(3)
expect(iconLists.first().props().icon).toEqual(itemsWidthCategory[0].category.iconName)
})
// 模拟点击
it('should trigger the correct function callbacks',()=>{
const firstItem = wrapper.find('.list-group-item').first()
firstItem.find('.modify').simulate('click')
expect(props.onModifyItem).toHaveBeenCalledWith(itemsWidthCategory[0])
firstItem.find('.delete').simulate('click')
expect(props.onDeleteItem).toHaveBeenCalledWidth()
})
});


0
0

张轩

2019-12-15

同学你好 看起来你的组件应该有点问题 是空的 你能提供一下对应的代码嘛

0
1
慕尼黑7354265
老师我贴上来了 这个是priceList组件里面的
2019-12-15
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程