2017-02-09 37 views
0

我有以下情况:阵营 - 单元测试与设定功能

describe('API - Input component',() => { 
    describe('Input element',() => { 
    it('should have a modifier to its class if data entered is erroneous',() => { 
     const wrapper = shallow(<Input error="Invalid data" />); 

     expect(wrapper.find('input').props().className).toBe('form-field__input form-field__input--error'); 
    }); 
    }); 
}); 

这工作完全正常。只要我将一些数据传递给我的错误道具,应该预期修改器类并通过测试。

现在,我想实现同样的事情,但使用设置功能。像这样:

function setup() { 
    const props = { 
    error: {} 
    }; 

    return shallow(<Input {...props} />); 
} 

describe('API - Input component',() => { 
    describe('Input element',() => { 
    it('should have a modifier to its class if data entered is erroneous',() => { 
     const wrapper = setup(how do I pass my props here?!); 

     expect(wrapper.find('input').props().className).toBe('form-field__input form-field__input--error'); 
    }); 
    }); 
}); 

谢谢!

回答

2

const wrapper = setup(我如何在这里传递我的道具?!);

,答案简单说就是道具本身文本对象{prop1: value1, prop2: value2 ,... , propN: valueN}

const wrapper = setup({error: 'Invalid data'}); 

要知道,假设setup应该是:

function setup (props) { 
    return shallow(<Input {...props} />); 
} 

如果你想在安装程序默认的道具,使用Object.assign可以用参数的道具扩展setup中的默认道具。

function setup (props) { 
    const defaultPropsOfSetup = { 
    error : 'Invalid error' 
    }; 
    props = Object.assign(defaultPropsOfSetup, props); 
    return shallow(<Input {...props} />); 
} 
+1

非常感谢! – Manu

+0

欢迎 –