我antd Checkbox
在我的组件中使用该组件CheckboxWidget
,该组件有一个contextType
定义:
static contextTypes: {
checkboxGroup: any
}
我想使用shallow
酶渲染来测试它,所以我在块内部使用了withContext
助手:recompose
beforeEach
describe('Simple Checkbox Widget', () => {
beforeEach(() => {
withContext({
getChildContext: function () {
return {checkboxGroup: null}
},
childContextTypes: {
checkboxGroup: shape({
disabled: bool,
toggleOption: func,
value: array
})
}
})(CheckboxWidget)
})
})
但是,当我这样编写测试时:
it('renders a checkbox from Antd', () => {
const wrapper = shallow(<Subject />)
const actual = wrapper.find(AntdCheckbox).length
const expected = 1
expect(actual).toEqual(expected)
})
我注意到测试失败了,因为它找不到Checkbox
小部件。我认为这是因为渲染的组件看起来像:
<Subject />
我发现wrapper.instance()
isSubject
和wrapper.instance().children
未定义。我尝试使用wrapper.dive
,但似乎wrapper.instance()
两者都不起作用。