首页 > 解决方案 > 我收到单元测试错误的原因是什么?

问题描述

function generateHashtag(str) {
    if (str.trim().length > 0 && str.trim().length < 140) {
        return '#' + str.split(' ').map((word) => word.substring(0, 1).toUpperCase() + word.substring(1, word.length)).join('')
    } else
        return false;
}

如果最终单词长于 140 ,则应返回 false 。仅在此测试中给出错误:

Test.assertEquals(generateHashtag("code" + " ".repeat(140) + "wars"), "#CodeWars")
Expected: '#CodeWars', instead got: false

标签: javascriptregexstringunit-testing

解决方案


您还需要从字符串中间删除空格(使用replace正则表达式很容易):

function generateHashtag(str) {
  const removedWhitespace = str.replace(/ /g, '');
  if (removedWhitespace.length > 0 && removedWhitespace.length < 140) {
    return '#' + str.split(' ').map((word) => word.substring(0, 1).toUpperCase() + word.substring(1, word.length)).join('')
  } else
    return false;
}

console.log(generateHashtag("code" + " ".repeat(140) + "wars"));


推荐阅读