Попытка проверить следующее, используя jest и Enzyme. Когда я запускаю npm-coverage, он показывает, что каждый случай не тестировался. Не совсем уверен, как подойти к решению
Вот код
renderColumnDropdown = () => {
if (this.props.columnIdList != undefined) {
let columnOptions = Object.keys(this.props.columnIdList).map(key => {
switch (key) {
case 'sort':
return false
case 'filters':
return false
case 'group':
return false
case 'dimensions':
return false
case 'pivot':
return false
case 'pivotanalysis':
return false
default:
return (
<option value = {key} key = {key}>{this.props.columnIdList[key]}</option>
)
}
})
Вот как я обычно настраиваю свои тестовые примеры:
it('Test renderColumnDropdown function',() => {
wrapper.setProps({
columnIdList:[{
key:'pivotanalysis'
}],
})
wrapper.setState({
}),
wrapper.update();
expect(wrapper.instance().renderColumnDropdown({defaultData:{filters:[{ column:''}]}})).toBeDefined();
});
Вы можете реорганизовать свой код, объединив все случаи в один, которые возвращают одно и то же значение, чтобы охватить их, и он должен иметь первый ключ для охвата всех ветвей.
switch (key) {
case 'sort':
case 'filters':
case 'group':
case 'dimensions':
case 'pivot':
case 'pivotanalysis':
return false
default:
return (
<option value = {key} key = {key}>{this.props.columnIdList[key]}</option>
)