Как правильно проверить, прерывается ли функция возвратом?
myFunction (parameter) {
if (typeof parameter === 'object') return
// doing any stuff
}
Тест (jestJS)
it('myFunction() should return if no valid parameter is passed', () => {
// SETUP
wrapper = shallow(<Component />)
// EXECUTE
wrapper.instance().myFunction(undefined)
// VERIFY
// ??
})
2 ответа
Как правильно проверить, прерывается ли функция возвратом?
Единственное, что вы можете сделать, это:
Функция должна возвращать разные значения в зависимости от пути кода и проверять возвращаемое значение. (Показанная функция не имеет возвращаемого значения ни по одному из путей, поэтому результатом ее вызова будет
undefined
, но еслиdoing any stuff
включаетreturn something
иsomething
гарантировано не бытьundefined
, вы можете проверить это.)Проверьте наличие побочных эффектов функции.
Например, если вы не предоставите средства узнать, что произошло внутри функции, это невозможно сказать извне.
Функция всегда будет возвращаться, если только она не вызовет исключение (правильный способ прерывания). Если функция завершается правильно с исключением, можно утверждать, было ли это исключение выброшено или нет.
Если вы хотите проверить, выполняется ли метод для определенной строки кода внутри метода. Предполагая, что у вас есть жасмин на борту, вы можете создать шпиона для объекта в строке выполнения и проверить этого шпиона с помощью утверждений.
В противном случае нет реального способа отличить прерывание по возврату - если только функция не должна что-то возвращать и ничего не возвращает.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.