Sta*_*erd 10 reactjs jestjs enzyme
我正在使用React v15.4,babel-jest v18和酶v2.5.1
我有一个简单的React组件:
import React, {Component} from 'react'
import {FormattedRelative} from 'react-intl'
import pageWithIntl from '../components/PageWithIntl'
import Layout from '../components/Layout'
class About extends Component {
static async getInitialProps ({req}) {
return {someDate: Date.now()}
}
render () {
return (
<Layout>
<h1>About</h1>
<p>
<FormattedRelative
value={this.props.someDate}
updateInterval={1000}
/>
</p>
</Layout>
)
}
}
export default pageWithIntl(About)
Run Code Online (Sandbox Code Playgroud)
一个简单的Jest/Enzyme测试:
/* global it, expect, describe */
import React from 'react'
import { shallow } from 'enzyme'
import renderer from 'react-test-renderer'
import About from '../pages/about.js'
describe('With Enzyme', () => {
it('App shows "About"', () => {
const about = shallow(
<About />
)
expect(about.find('h1').text()).toEqual('About')
})
})
Run Code Online (Sandbox Code Playgroud)
Jest测试应该通过,但我收到一个错误:
方法"text"仅用于在单个节点上运行.0找到了.
我错过了什么?
===更新
快照测试通过:
describe('With Snapshot Testing', () => {
it('About shows "About"', () => {
const component = renderer.create(<About />)
const tree = component.toJSON()
expect(tree).toMatchSnapshot()
})
})
Run Code Online (Sandbox Code Playgroud)
有没有办法在快照测试中整合酶期望测试?如何?
And*_*rle 10
它的原因是浅层不会渲染子组件并且您的组件被函数包裹.如此浅只返回函数的表示而不是组件的表示.您可以使用它dive()来访问真实组件
/* global it, expect, describe */
import React from 'react'
import { shallow } from 'enzyme'
import renderer from 'react-test-renderer'
import About from '../pages/about.js'
describe('With Enzyme', () => {
it('App shows "About"', () => {
const about = shallow(
<About />
).dive()
expect(about.find('h1').text()).toEqual('About')
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11748 次 |
| 最近记录: |