javascript - sinon stub 数组对象

标签 javascript sinon

已经阅读了官方文档并进行了搜索,但我仍然不知道这一点。

简单的源代码:

// obj is an object with an array element
// each element in array has its function
if (obj.arr['key1']) {
    return obj.arr['key1'].getValue();
}

我想要的是控制obj.arr,例如:

var stub = sinon.stub(obj, "arr");
stub['key2'].returns = {...} //add new Index 
delete stub['key1'].returns //remove old Index

最佳答案

您可以像这样在数组中 stub 函数:

myObj = {

    myArray: [
    function(){}, 
    function(){}, 
    function(){}
    ]
}

var stub = sinon.stub(myObj.myArray, [0]).returns() //insert what should be returned

用途:

describe ('foo', function () {

    it ('foo', sinon.test(function () {

        this.stub (myObj.myArray, [0]).returns();

    }))
}

如果您想在 stub 之后自动清理。

关于javascript - sinon stub 数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39977977/

相关文章:

javascript - 使用 $emit from 指令将事件发送到 Controller

javascript - 以编程方式添加图像时未触发 Dropzone "addedfile"

javascript - 使用 ng-repeat 的 Angular 复选框值

node.js - 我如何期望在 nodejs 中使用 sinon、mocha 和 chai 的特定参数调用函数?

javascript - 测试函数中的函数是否被返回

javascript - 在 Node.js 中监视 require

javascript - 一个 stub 如何与 sinon promise ?

node.js - 使用 sinon stub 在 mocha 中对 ES6 函数导入进行 stub

javascript - Angularjs-阅读更多自定义指令不适用于 ng-bind-html 指令

javascript - 比较两个数组并找到第二个数组中缺少的项目