【发布时间】:2018-02-09 21:04:31
【问题描述】:
这不是用酶而不是商店来呈现反应/回流测试的正确方法吗,即"dumb"
import React from 'react'
import { shallow, render } from 'enzyme'
import { Controls } from '../Controls' // named export
import LoadingSpinner from '../LoadingSpinner'
let wrapper
let loadingFlags = {
controls: true
}
describe('<Controls />', () => {
it('should render only the loading spinner', () => {
wrapper = shallow(<Controls loadingFlags={loadingFlags} />) // this ensures the spinner will show until data is ready
expect(wrapper.length).toEqual(1) // test passes
expect(wrapper.find(LoadingSpinner)).to.have.length(1)
// ^ TypeError: Cannot read property 'have' of undefined
})
})
当我登录wrapper.html() 时,我可以看到<img class='spinner' /> 被渲染,但酶找不到它作为一个组件。对我来说,docs 表明这正是我应该做的。我想我可以检查那个类的孩子,但这似乎比检查组件本身更混乱,例如 Spinner 组件中的类更改。
如何测试这个子组件是否存在?
【问题讨论】:
-
你使用什么作为测试运行器?您使用的测试运行程序似乎不接受
.to.have语法 -
@Grandas 这是 chaijs 语法
标签: javascript reactjs unit-testing jestjs enzyme