var compareStr = function(str1, str2) {
if (str1.slice(1) !== str2.slice(1)) {
return false;
}
if (str1.slice(1) === '' && str2.slice(1) === '') {
return true;
}
return compareStr(str1.slice(1), str2.slice(1));
}
Я делаю функцию сравнения строк между двумя строковыми аргументами, используя рекурсию. Я проверяю свою функцию на различные тесты мокко. Я не могу передать это в частности.
AssertionError: expected 1 to be above 1
, который указывает на этот код:
it('should use recursion by calling self', function() {
compareStr('house', 'houses');
expect(compareStr.callCount).to.be.above(1);
});
Теперь я думаю, что происходит, если str1
и str2
не равны первому элементу, тогда моя функция возвращает false. На мой взгляд, это хороший крайний случай, так как после этого нет смысла выполнять функцию. Этот тест утверждения ищет результат false
после того, как он прошел рекурсию хотя бы один раз? Это означает, что рекурсия должна произойти, по крайней мере, один раз, чтобы это прошло.