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()
がわかりました。使用しようとしましたが、どちらでも機能していないようです。Subject
wrapper.instance().children
wrapper.dive
wrapper.instance()