javascript - js单元测试的模块依赖问题
PHP中文网
PHP中文网 2017-04-11 10:49:11
[JavaScript讨论组]
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
迷茫

试试sinon呗,按你的需求:

var sinon = require('sinon');

//假设你有模块b,b里有个方法sayHi
var b = {
    sayHi: function() {
        return new Date();
    }
};

//正常情况下,b.sayHi()应该输出当前日期
console.log(b.sayHi()); //the reay date

//我们现在来模拟b模块的sayHi方法,让她永远返回999
var mockB = sinon.stub(b, 'sayHi', function() {
    return 999;
});


//再来调用b.sayHi()试试?
console.log(b.sayHi());//变成999了哦!!!

补充:

我假设你的b.js是如下结构:


export default {
    data: [{
        id: 123,
        value: 'fuck'
    }]
};

现在来补一下test:

import sinon from 'sinon';

import b from './b';
import {search} from './a';

var mockB = sinon.sandbox.create().stub(b, 'data', [{
    id: 1,
    value: 'Hello'
}]);

//这个时候,因为b对象被sanbox替换了,于是当search(1)的时候,没有出现-1,而是Hello
console.log(search(1)); //Hello
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号