gpt4 book ai didi

javascript - 如何根据发送的实际参数返回?

转载 作者:行者123 更新时间:2023-12-05 03:03:33 25 4
gpt4 key购买 nike

假设我们有一个带有两个参数的函数。它被多次调用,每次调用都有不同的参数。因此,不可能使用 withArgs 选项对其进行 stub 。

async function foo(args1, args2){
// some business logic
return result
}

我想编写一个 stub 函数,它将检查传递的实际参数(args1、args2)并返回一个带有 switch case 的静态响应。以下几行内容:

sinon.stub(TestModule, "foo")
.resolves(asyn function(args1, args2){
switch(args2){
case "a":
return 1
case "b":
return 2
case "c":
return 3
default:
return 0
}

})

那么,如何根据实参返回呢?

最佳答案

您可以使用 stub(obj, 'meth').callsFake(fn) 动态检查传入的内容并对其作出响应。

一个例子是:

const mockFunction = (arg1, arg2) => { switch(arg2) {case "a": return 1 ...}}
sinon.stub(TestModule, "foo").callsFake(mockFunction);

请注意,对于早期版本的 Sinon < 3.0.0您应该改用 var stub = sinon.stub(object, "method", fn);

关于javascript - 如何根据发送的实际参数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53790753/

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