Jasmine spyOn有特定的论点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jasmine spyOn有特定的论点相关的知识,希望对你有一定的参考价值。

假设我有

spyOn($cookieStore,'get').and.returnValue('abc');

这对我的用例来说太笼统了。我们随时打电话

$cookieStore.get('someValue') -->  returns 'abc'
$cookieStore.get('anotherValue') -->  returns 'abc'

我想设置一个spyOn,所以我根据参数得到不同的回报:

$cookieStore.get('someValue') -->  returns 'someabc'
$cookieStore.get('anotherValue') -->  returns 'anotherabc'

有什么建议?

答案

你可以使用callFake

spyOn($cookieStore,'get').and.callFake(function(arg) {
    if (arg === 'someValue'){
        return 'someabc';
    } else if(arg === 'anotherValue') {
        return 'anotherabc';
    }
}

以上是关于Jasmine spyOn有特定的论点的主要内容,如果未能解决你的问题,请参考以下文章

在私有方法上使用 Jasmine spyon

使用 Jasmine 进行 Angular 单元测试:如何删除或修改 spyOn

如何在不使用 Angular 的 spyOn 的情况下检查服务中的方法是不是在 Jasmine 单元测试中被调用?

Jasmine spyOn 函数和返回对象

如何使用 Jasmine 监视值属性(而不是方法)

间谍服务在spyOn时变为未定义