gpt4 book ai didi

javascript - 与 js bin 相比,Mocha 测试返回不同的答案

转载 作者:行者123 更新时间:2023-12-02 22:54:50 25 4
gpt4 key购买 nike

我正在编写一个函数来尝试删除 <noscript>来自 html 字符串的标签。

我在下面编写了我的函数:

function removeNoScript(str){
var start = str.search("<noscript>");
var end = str.search("</noscript>") + "</noscript>".length;

var result = str.replace(str.substring(start,end),"");
return result;
}

let result = removeNoScript("<p>first word</p><noscript>This shows up</noscript><p>second word</p>");

console.log(result)

这工作得很好,但是当我用 chai 和 mocha 对此运行单元测试时(如下):

it("removes <noscript> in-between markup", () => {
removeScripts(
"<p>first word</p><noscript>This shows up</noscript><p>second word</p>"
).should.equal("<p>first word</p><p>second word</p>");
});

我收到这个结果: enter image description here

同样的函数在 JSBin 中工作,我注销了响应 - 知道为什么它在 JSBin 上工作但 Mocha/Chai 返回错误吗?

P.S:如果有帮助的话,这是我在编辑器中编写的代码的快照(忽略关于 <script> 的评论,因为我计划接下来删除它): enter image description here

最佳答案

这不是测试。在您发布的图片中,您有:

result = str.replace(str.substr(start, end),"");

使用substr而不是substringsubstr 的第二个参数表示要提取的字符数,而 substring 的第二个参数是要排除的第一个字符的索引。

子字符串:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr

子字符串:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring

由于 substr 是遗留的,您可能会想坚持使用 substring

关于javascript - 与 js bin 相比,Mocha 测试返回不同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58036888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com