gpt4 book ai didi

自定义函数的 JavaScript 单元测试

转载 作者:行者123 更新时间:2023-12-02 18:30:56 26 4
gpt4 key购买 nike

function testRef() {
if(document.referrer) {
return /isgoogle/.test(document.referrer)
}
return false;
}

让我们假设一个如上的函数。为这样的函数编写单元测试的好方法是什么[因为我们无法覆盖 document.referrer]。是否有其他好的方法来测试此类场景,例如在 javascript 中的 iframe、引荐来源网址、位置等中?我目前正在使用 qunit,这非常好。但未能在框架中针对此类场景找到出路。

最佳答案

最简单的方法是将算法与依赖项分开:

function testRefImpl(doc) {
if(doc.referrer) {
return /isgoogle/.test(doc.referrer)
}
return false;
}

// unit test
assertFalse(testRefImpl({referer: "abc"}))
assertTrue(testRefImpl({referer: "isgoogle"}))

// dependency declaration module
// so primitive, that there is no point to unit test it.
function testRef() {
return testRefImpl(document)
}

关于自定义函数的 JavaScript 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17803926/

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