Так я тестирую приложение React с Mocha + Enzyme + Sinon. Я пытаюсь проверить функцию с оператором if, в котором есть вызов другой функции. Моя цель - ввести оператор if, но заглушить второй вызов функции. Вот код:Функция Sinon Stub в другой функции
onSearchChange = ({value}) => {
const port = '/search-users?search_q=';
const path = [port, value].join('');
if (value.length >= 2 && value.length <= 5) {
this.getUsers(path, (array) => {
this.setState({ suggestions: fromJS(array) })
});
}
};
Так что я хочу, чтобы войти, если заявление, но не называйте getUsers функции(). Как я могу это сделать? Я шпионил onSearchChange(), как это:
const wrapper = shallow(<ContentEditor />);
const spy = sinon.spy(wrapper.instance(), 'onSearchChange');
С нетерпением ждем, спасибо!
Вы никогда не должны макет или тупиковые методы на объекте испытываешь. В вашем случае я предполагаю, что 'getUser' делает какой-то запрос ajax, поэтому закройте те вещи, которые делают запрос, а не манипулируют вашим тестированным классом. –