与 js bin 相比,Mocha 测试返回不同的答案
Mocha test returning different answer when compared to js bin
我正在编写一个函数来尝试从 html.
的字符串中删除 <noscript>
标签
我在下面写了我的函数:
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>");
});
我收到这个结果:
相同的功能在 JSBin 中工作,我注销了响应 - 知道为什么它在 JSBin 上工作但 Mocha/Chai 返回错误吗?
P.S:如果有帮助,这是我在编辑器中编写的代码的快照(忽略关于 <script>
的评论,因为我打算接下来删除它):
这不是测试。在您发布的图片中,您有:
result = str.replace(str.substr(start, end),"");
使用 substr
而不是 substring
。 substr
的第二个参数表示要提取的字符数,而 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
。
我正在编写一个函数来尝试从 html.
的字符串中删除<noscript>
标签
我在下面写了我的函数:
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>");
});
我收到这个结果:
相同的功能在 JSBin 中工作,我注销了响应 - 知道为什么它在 JSBin 上工作但 Mocha/Chai 返回错误吗?
P.S:如果有帮助,这是我在编辑器中编写的代码的快照(忽略关于 <script>
的评论,因为我打算接下来删除它):
这不是测试。在您发布的图片中,您有:
result = str.replace(str.substr(start, end),"");
使用 substr
而不是 substring
。 substr
的第二个参数表示要提取的字符数,而 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
。