在测试中,我试图对一个写入数据库日志的函数调用进行存根/模拟/覆盖。
function logit(msg) {
writeMessageToDb(msg);
}
function tryingToTestThisFunction(){
var error = processSomething();
if (error) {
logit(error);
}
}
我想让logit()
在测试期间简单地打印到控制台...但在logit()
函数内部添加"isTesting()
"的if/else块不是一个选项。是否可能在不包括其他模拟框架的情况下实现此目的?我目前正在使用
JsTestDriver
进行单元测试,并没有机会评估任何模拟框架。目前的理想解决方案是在没有另一个框架的情况下处理这个问题。
confirm('test')
。window
本身就是全局对象(甚至公开了window.window
- 以及全局定义的用户函数)。在 Node 中,global
将是期望的目标(例如,为了存根setTimeout
而不需要花费太长时间)。或者如果在 Node 12+ 上,不需要 IE 支持或非更新的浏览器版本,则使用globalThis
。 - Brett Zamir