gpt4 book ai didi

node.js - Jasmine Node 测试子进程

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:02 24 4
gpt4 key购买 nike

刚刚编写了一个模块,用于获取生产设备的当前 IOStat 以确定它是否过度工作。

有趣的问题 - 没有真正的方法可以用 Jasmine 测试回调函数;好吧,至少我找到了一个。

spy 是我首先想到的,但由于它实际上直接调用该函数,所以这是不可能的。当然,我总是可以将此函数定义为 var 并执行 spy 操作。

proc.exec('iostat -c | tail -n2', function(err, out, s){

if(err) throw err;

misc();

}

我想要测试这个的唯一原因 - 是因为我正在一台 Windows 机器上进行开发,它没有所有这些命令可用,所以我想拦截它并抛出预期的结果。

最佳答案

您必须监视 proc.exec 并从 spy.mostRecentCall.args 数组中获取回调函数,然后自行调用:

spyOn(proc, 'exec')
//run your code
proc.exec.mostRecentCall.args[1](true)

由于这不太方便,您可以使用 sinon ,您可以在其中创建一个使用 stub.callsArgWith(index, args) 自动调用回调的 stub

sinon.stub(proc, 'exec').callsArgWith(1, true);
//run your code

关于node.js - Jasmine Node 测试子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16781270/

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