【发布时间】:2018-10-10 16:42:15
【问题描述】:
我只想知道是否可以在存根参数上伪造回调。
这基本上是我想要实现的,我在诗农的文档上一无所获:
function A(arg1, arg2, next){
return [arg1, arg2, next];
};
function B(string){
return string;
};
function C(){
return 'Mocked next';
};
var obj = {
A: A,
test: 'test'
};
var result1 = obj.A(1, 2, B('Next')); // result1 = [1, 2, 'Next']
sandbox.stub(obj, 'A')//.Argument[2].Returns(C());
var result2 = obj.A(1, 2, B('Next')); // result2 = [1, 2, 'Mocked next']
有可能吗?
【问题讨论】:
-
你到底想测试什么?
-
这有关系吗?我需要所有参数都相同,除了那个。它是被调用函数链的简化版本。
-
为什么不只是模拟
function B来返回模拟值。 -
因为是回调函数,所以不是固定函数。我需要嘲笑那个论点..
-
我不确定是否有任何方法可以做你想做的事。请解释一下场景,我可以帮忙吗?在您的示例中,您没有使用
function B作为回调。这是一个返回值的简单函数。
标签: sinon